AWXは「AnsibleWebeXecutable」の略で、Ansibleプロジェクトを簡単に管理および制御できる無料のオープンソースプロジェクトです。 Ansible上に構築されたWebベースのユーザーインターフェイスとタスクエンジンを提供します。強力なRESTAPIを提供し、インベントリを他のクラウドソースと管理または同期し、アクセスを制御し、LDAPと統合できるようにします。
このチュートリアルでは、CentOS8にDockerを使用してAnsibleAWXをインストールする方法を示します。
- 4GB以上のRAMを搭載したCentOS8を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
開始する前に、システムにEPELリポジトリをインストールする必要があります。次のコマンドでインストールできます:
dnf install epel-release -y
次に、システムでAWXを実行するために必要ないくつかの追加パッケージをインストールする必要があります。次のコマンドですべてをインストールできます:
dnf install git gcc gcc-c ++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
DockerとDockerComposeをインストールする
次に、Dockerコンテナ内でAWXを実行するには、Dockerをインストールする必要があります。デフォルトでは、最新バージョンのDockerはCentOS8のデフォルトリポジトリでは利用できません。そのため、システムにDockerリポジトリを追加する必要があります。次のコマンドを使用して、Dockerリポジトリを追加できます。
dnf config-manager --add-repo =https://download.docker.com/linux/centos/docker-ce.repo
追加したら、次のコマンドを使用して最新の安定バージョンのDockerをインストールします。
dnf install docker-ce-3:18.09.1-3.el7 -y
Dockerがインストールされたら、次のコマンドを使用して、インストールされているDockerのバージョンを確認します。
docker --version
次の出力が得られるはずです:
Dockerバージョン19.03.7、ビルド7141c199a2
次に、Dockerサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。
systemctl start docker
systemctl enable docker
次のコマンドを使用して、Dockerサービスのステータスを確認できます。
systemctl status docker
次の出力が得られるはずです:
? docker.service-Dockerアプリケーションコンテナエンジンロード済み:ロード済み(/usr/lib/systemd/system/docker.service;無効;ベンダープリセット:無効)アクティブ:水2020-03-11 02:36:04以降アクティブ(実行中) EDT; 23分前ドキュメント:https://docs.docker.comメインPID:5882(dockerd)タスク:101メモリ:2.6G CGroup:/system.slice/docker.service ?? 5882 / usr / bin / dockerd -H fd: // ?? 5899 containerd --config /var/run/docker/containerd/containerd.toml --log-level info ?? 8815 containerd-shim -namespace moby -workdir / var / lib / docker / containerd / diamond / io .containerd.runtime.v1.linux / moby / 4b91575d64b1b> ?? 8847 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/0f36c9784f748>? ?8894 / usr / bin / docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.5 -container-port 8052 ?? 8899 containerd-shim -namespace moby -workdir / var /lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/47300ec1c26ff> ?? 8923 containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime .v1.linux / moby / 9827b9831fa5b>??9631が含まれていますerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/166b153faa275>
次に、次のコマンドを使用してDockercomposeをインストールします。
pip3 install docker-compose
インストールしたら、次のコマンドを使用してDocker構成バージョンを確認します。
docker-compose --version
次の出力が表示されます。
docker-バージョン1.25.4を作成し、ビルドは不明
最後に、次のコマンドを実行して、python3を使用するようにpythonコマンドを設定します。
Alternatives --set python / usr / bin / python3
まず、次のコマンドを使用して、GitHubリポジトリから最新バージョンのAnsibleAWXをダウンロードします。
git clone https://github.com/ansible/awx.git
次に、次のコマンドを使用して、インベントリファイルを暗号化するための秘密鍵を生成します。
openssl rand -base64 30
次の出力が得られるはずです:
R + kbcDEUS8DlAftAbfWafVqLZ0lUy + Paqo4fEtgp
注:上記の秘密を覚えておいてください。インベントリファイルに貼り付ける必要があります。
次に、ディレクトリをawx / installer /に変更し、インベントリファイルを編集します。
cd awx / installer /
nano Inventory
次の行を変更します:
[all:vars] dockerhub_base =ansibleawx_task_hostname =awxawx_web_hostname =awxwebpostgres_data_dir ="/ var / lib / pgdocker" host_port =80host_port_ssl =443docker_compose_dir ="〜/ .awx / awxcompose" pg_username =awxpg_password =awxpassrabbitmq_erlang_cookie =cookiemonsteradmin_user =adminadmin_password =passwordcreate_preload_data =Truesecret_key =R + kbcDEUS8DlAftAbfWafVqLZ0lUy + Paqo4fEtgpawx_official =trueawx_alternate_dns_servers ="8.8.8.8,8.8.4.4"終了したら、ファイルを保存して閉じます。次に、Postgresのディレクトリを作成します:
mkdir / var / lib / pgdocker最後に、次のコマンドを実行してAWXをインストールします。
ansible-playbook -i Inventory install.ymlインストールが正常に完了すると、次の出力が表示されます。
skipping:[localhost] TASK [local_docker:Load web image] ********************************** ************************************************** **********************スキップ:[localhost] TASK [local_docker:タスクイメージの読み込み] *************** ************************************************** ****************************************スキップ:[localhost] TASK [local_docker:設定ローカルインストールのフルイメージパス]******************************************* ****************************************スキップ:[localhost] TASK [local_docker:設定DockerHubイメージパス]********************************************** *************************************************わかった:[localhost] TASK [local_docker:〜/ .awx/awxcomposeディレクトリを作成]********************************* ************************************************** ***変更:[localhost] TASK [local_docker:DockerCompose構成の作成]********************************* ************************************************** **変更:[localhos t] =>(item =environment.sh)changed:[localhost] =>(item =credentials.py)changed:[localhost] =>(item =docker-compose.yml)changed:[localhost] =>(item =nginx.conf)TASK [local_docker:SECRET_KEYファイルをレンダリング] ************************************* ************************************************** ***********変更:[localhost] TASK [local_docker:コンテナーを開始] ************************** ************************************************** ************************変更:[localhost] TASK [local_docker:awx_webコンテナーのCA信頼を更新] ********** ************************************************** ************************変更:[localhost] TASK [local_docker:awx_taskコンテナのCA信頼を更新] ********** ************************************************** ***********************変更:[localhost] PLAY RECAP ******************** ************************************************** ************************************************** ************ localhost:ok=14変更d=6到達不能=0失敗=0スキップ=95レスキュー=0無視=0上記のコマンドは、AWXに必要なすべてのDockerコンテナを作成して起動します。次のコマンドを使用して、実行中のコンテナーを確認できます。
docker ps次の出力が表示されます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4b91575d64b1 ansible / awx_task:9.2.0 "/ tini-/ bin/sh-c…"約1分前アップ約1分8052/tcp awx_task9827b9831fa5 ansible / awx_web:9.2.0 "/ tini-/ bin/sh-c…"約1分前Up約1分0.0.0.0:80->8052/tcp awx_web47300ec1c26f postgres:10"docker-entrypoint.s…"約1分前Up約a分5432/tcp awx_postgres166b153faa27 ansible / awx_rabbitmq:3.7.4"docker-entrypoint.s…"約1分前アップ58秒4369/ tcp、5671-5672 / tcp、15671-15672 / tcp、25672 / tcp awx_rabbitmq0f36c9784f74 memcached "docker-entrypoint.s…"約1分前アップ約分11211/tcp awx_memcachedSELinuxとファイアウォールを構成する デフォルトでは、SELinuxはCentOS 8で有効になっています。Docker環境でAWXが機能するように、SELinuxを無効にすることをお勧めします。次のファイルを編集して無効にできます:
nano / etc / sysconfig / selinux次の行を見つけます:
SELINUX =Enforcingそして、それを次の行に置き換えます:
SELINUX=無効終了したら、ファイルを保存して閉じます。次に、システムを再起動して変更を実装します。次に、firewalldを介したhttpおよびhttpsサービスを許可する必要があります。次のコマンドで許可できます:
Firewall-cmd --zone =public --add-masquerade --permanent
Firewall-cmd --permanent --add-service =http
Firewall-cmd --permanent --add- service =https次に、firewalldサービスを再起動して、変更を適用します。
Firewall-cmd --reloadAWXWebインターフェイスにアクセス
次に、Webブラウザーを開き、URL http://your-server-ipを入力します。 AWXログインページにリダイレクトされます:
インベントリファイルで定義した管理者のユーザー名とパスワードを入力し、署名をクリックします IN ボタン。次のページにAWXのデフォルトのダッシュボードが表示されます。
結論 おめでとう! CentOS 8にDockerを使用してAWXを正常にインストールしました。これで、AWXWebインターフェイスを使用してAnsibleプロジェクトを簡単に管理および制御できます。
Cent OS