Ansibleは、ソフトウェアプロビジョニング、構成管理、およびアプリケーションの展開に使用されるオープンソースの自動化ツールです。複数のシステムにアプリケーションを自動的にインストール、構成、展開できます。
AWXは、Ansibleを制御するために使用されるWebベースのアプリケーションです。 Ansibleプレイブック、インベントリ、シークレット、およびスケジュールされたジョブをAWXWebインターフェイスから管理できます。
機能
- AWS、Azure、GCPなどの複数のクラウドをサポートする
- ユーザーアクティビティの追跡
- 効率とセキュリティの向上
- ユーザーの役割ベースのアクセス制御と認証
- ジョブスケジューリング
- 統合通知
この投稿では、Debian10サーバーにAWXをインストールする方法を紹介します。
- Debian10を実行しているサーバー。
- ルートパスワードがサーバーに設定されます。
まず、次のコマンドを使用して、すべてのシステムパッケージを最新バージョンに更新します。
apt-get update -y
すべてのパッケージが更新されたら、次のコマンドを使用して他の必要なパッケージをインストールします。
apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -y
すべてのパッケージをインストールしたら、次のステップに進むことができます。
次に、システムにAnsibleをインストールする必要があります。デフォルトでは、Ansibleの最新バージョンはDebian10リポジトリに含まれていません。したがって、AnsibleリポジトリをAPTに追加する必要があります。次のコマンドで追加できます:
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
リポジトリが追加されたら、次のコマンドを使用してGPGキーを追加します。
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
次に、リポジトリを更新し、次のコマンドを使用して最新バージョンのAnsibleをインストールします。
apt-get update -y
apt-get install ansible -y
Ansibleがインストールされたら、次のコマンドを使用して、インストールされているバージョンのAnsibleを確認できます。
ansible --version
次の出力が得られるはずです:
ansible 2.9.19 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]
この時点で、Ansibleがシステムにインストールされています。これで、次のステップに進むことができます。
DockerとDockerComposeをインストールする
次に、DockerとDockerComposeをシステムにインストールする必要があります。デフォルトでは、最新バージョンのDockerはDebian10のデフォルトリポジトリでは利用できません。そのため、DockerCEリポジトリをシステムに追加する必要があります。まず、次のコマンドを使用してDockerキーとリポジトリを追加します。
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
次に、リポジトリを更新し、次のコマンドを使用してDockerCEをインストールします。
apt-get update -y
apt-get install docker-ce -y
Dockerをインストールしたら、次のコマンドを使用してDockerのバージョンを確認します。
docker --version
次の出力が表示されます。
Docker version 20.10.5, build 55c4c88
次に、最新バージョンのDockerComposeをシステムにインストールする必要があります。次のコマンドを使用して、DockerComposeバイナリをダウンロードできます。
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-Linux-x86_64 | cut -d '"' -f 4 | wget -qi -
ダウンロードが完了したら、次のコマンドを使用して適切な権限を設定します。
chmod +x docker-compose-Linux-x86_64
次に、次のコマンドを使用して、DockerComposeバイナリをシステムパスに移動します。
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
次に、次のコマンドを使用してDockerComposeのバージョンを確認します。
docker-compose version
次の出力が得られるはずです:
docker-compose version 1.28.5, build c4eb3a1f docker-py version: 4.4.4 CPython version: 3.7.10 OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
この時点で、DockerとDockerComposeがシステムにインストールされます。これで、次のステップに進むことができます。
Node.jsとNPMをインストールします
次に、Node.jsとNPMをシステムにインストールする必要があります。次のコマンドを使用して、Node.jsとNPMをインストールできます。
apt-get install nodejs npm -y
npm install npm --global
次に、次のコマンドを使用して他のPython依存関係をインストールします。
apt-get install python3-pip git pwgen -y
次に、次のコマンドを使用して、DockerComposeのバージョンと一致するDockerComposeモジュールをインストールします。
pip3 install docker-compose==1.28.5
終了したら、次のステップに進むことができます。
注 :1.28.5がシステムにインストールされているDockerComposeのバージョンと一致していることを確認してください。
AWXをインストール
次に、システムにAWXをインストールする必要があります。まず、次のコマンドを使用してGitHubリポジトリからAWXをダウンロードします。
wget https://github.com/ansible/awx/archive/17.1.0.zip
ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します。
unzip 17.1.0.zip
次に、次のコマンドを使用して、ディレクトリをインストーラに変更します。
cd awx-17.1.0/installer/
次に、次のコマンドを実行してシークレットキーを生成します。
pwgen -N 1 -s 30
次の出力が得られるはずです:
3BgGA8MnM4gKTXV8r7vQhwjjNixO6o
次に、インベントリファイルを編集し、管理者のユーザー名、パスワード、秘密鍵を定義します。
nano inventory
次の行を変更します:
admin_user=admin admin_password=securepassword secret_key=3BgGA8MnM4gKTXV8r7vQhwjjNixO6o
終了したらファイルを保存して閉じ、次のコマンドを実行してAWXをインストールします。
ansible-playbook -i inventory install.yml
AWXが正常にインストールされると、次の出力が得られます。
changed: [localhost] TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'}) changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.conf'}) TASK [local_docker : Render SECRET_KEY file] ************************************************************************************************** changed: [localhost] TASK [local_docker : Remove AWX containers before migrating postgres so that the old postgres container does not get used] ******************** ok: [localhost] TASK [local_docker : Run migrations in task container] **************************************************************************************** changed: [localhost] TASK [local_docker : Start the containers] **************************************************************************************************** changed: [localhost] TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************ changed: [localhost] TASK [local_docker : Update CA trust in awx_task container] *********************************************************************************** changed: [localhost] TASK [local_docker : Wait for launch script to create user] *********************************************************************************** ok: [localhost] TASK [local_docker : Create Preload data] ***************************************************************************************************** changed: [localhost] PLAY RECAP ************************************************************************************************************************************ localhost : ok=21 changed=12 unreachable=0 failed=0 skipped=73 rescued=0 ignored=1
この時点で、AWXがシステムにインストールされています。これで、AWXWebUIへのアクセスに進むことができます。
次に、Webブラウザーを開き、URL http:// your-server-ipを使用してAnsibleAWXWebインターフェースにアクセスします。 。 AWXログインページにリダイレクトされます:
管理者のユーザー名とパスワードを入力し、ログをクリックします で ボタン。次のページにAnsibleAWXダッシュボードが表示されます。
おめでとう!これで、Debian10サーバーにAnsibleAWXが正常にインストールされました。 AWXダッシュボードから、Ansibleプレイブック、インベントリ、およびジョブを簡単に管理できるようになりました。ご不明な点がございましたら、お気軽にお問い合わせください。