DOnations]プログラムの一環として寄付を受け取りました。前書きAnsibleのユニットテストは、ロールが意図したとおりに機能することを確認するための鍵です。Moleculeでは、さまざまな環境に対して役割をテストするシナリオを指定できるため、このプロセスが簡単になります。フードの下でAnsibleを使用して、Moleculeはロールをプロビジョニングされた環境に展開するプロビジョニング担当者にオフロードし、ベリファイア(https://github.com/philpep/testinfra[Testinfra]など)を呼び出して構成のドリフトを確認します。これにより、ロールがその特定のシナリオで環境に対して予想されるすべての変更を行ったことを確認できます。7でhttps://firewalld.org/[Firewalld]を構成するAnsibleロールを構築します。[Docker]をドライバーとして使用し、Testinfra(サーバーの状態をテストするためのPythonライブラリー)を使用してMoleculeでテストを作成します。MoleculeはDockerコンテナーをプロビジョニングしてロールをテストし、Testinfraはサーバーが意図したとおりに構成されていることを確認します。終了したら、環境全体のビルド用に複数のテストケースを作成し、Moleculeを使用してこれらのテストを実行できます。前提条件このガイドを始める前に、次のものが必要です。16.04サーバー1台。16.04での初期サーバーセットアップガイドの手順に従って、非ルートsudoユーザーを作成します。パスワードなしでサーバーに接続できることを確認してください。サーバーにインストールされたDocker。16.04にDockerをインストールして使用する方法]の手順1と2を実行します。+`グループに追加してください。Ansibleプレイブックに精通している。Playbookの作成]を参照してください。ステップ1-環境の準備ロールとテストを作成するには、まず仮想環境を作成してMoleculeをインストールしましょう。Moleculeをインストールすると、Ansibleもインストールされ、プレイブックを使用してロールを作成し、テストを実行できるようになります。非rootユーザーとしてログインし、リポジトリが最新であることを確認することから始めます。2.7がインストールされます。`を使用して仮想環境を作成し、追加のパッケージをインストールします。Pythonモジュールをインストールします。virtualenv次に、仮想環境を作成してアクティブ化します。virtualenvそれをアクティブにして、アクションがその環境に制限されるようにします。docker`をインストールします。dockerこれらの各パッケージの機能は次のとおりです。+:これは、ロールをテストするために使用するメインのMoleculeパッケージです。+`をインストールすると、他の依存関係とともにAnsibleが自動的にインストールされ、Ansibleプレイブックを使用してロールとテストを実行できるようになります。+:このPythonライブラリは、MoleculeがDockerとのインターフェースに使用します。Dockerをドライバーとして使用しているため、これが必要になります。次に、Moleculeでロールを作成しましょう。環境を設定したら、Moleculeを使用して基本的な役割を作成し、Apacheのインストールをテストできます。このロールは、ディレクトリ構造といくつかの初期テストを作成し、ドライバーとしてDockerを指定して、Moleculeがテストを実行するためにDockerを使用するようにします。+`はMoleculeがテストで使用するホストをプロビジョニングするドライバーを指定します。新しく作成されたロールのディレクトリに移動します。ansible-apacheデフォルトのロールをテストして、Moleculeが適切にセットアップされているかどうかを確認します。testデフォルトの各テストアクションをリストする出力が表示されます。+`を検証して、すべてが正常であることを確認します。テストアクションの順序を指定するこのテストマトリックスを出力します。ロールを作成してテストをカスタマイズしたら、各テストアクションについて詳しく説明します。`ステータスを返さないことを確認してください。+`は次のようになります。failed=0次に、ロールを変更してApacheとFirewalldを構成します。ステップ3-ApacheとFirewalldの構成ApacheとFirewalldを構成するには、ロールのタスクファイルを作成し、インストールするパッケージと有効にするサービスを指定します。これらの詳細は、デフォルトのApacheインデックスページを置き換えるために使用する変数ファイルとテンプレートから抽出されます。+`またはお好みのテキストエディターを使用して、ロールのタスクファイルを作成します。tasks/main.ymlファイルが既に存在することがわかります。そこにあるものを削除し、次のコードを貼り付けて必要なパッケージをインストールし、正しいサービス、HTMLデフォルト、ファイアウォール設定を有効にします。trueこのプレイブックには4つのタスクが含まれています。`の下にリストされているパッケージをインストールします。+`にあり、このステップの最後に作成します。`、Apacheによって生成されます。このステップでは、テンプレートも作成します。+`にリストされているサービスを開始して有効にします。`サービスをホワイトリストに登録します。Firewalldは、CentOSサーバーにデフォルトで存在する完全なファイアウォールソリューションです。`サービスが機能するには、必要なポートを公開する必要があります。+」に指示すると、サービスが必要とするすべてのポートがホワイトリストに登録されます。完了したら、ファイルを保存して閉じます。+`ディレクトリを作成します。templatesページ自体を作成します。templates/index.html.j2次の定型コードを貼り付けます。Ansible</h2></div>ファイルを保存して閉じます。ロールを完了するための最後のステップは、変数ファイルを作成することです。このファイルは、パッケージとサービスの名前をメインのロールプレイブックに提供します。firewalldこれらのリストには、次の情報が含まれています。