AWXは「AnsibleWebeXecutable」の略で、Ansibleプロジェクトを簡単に管理および制御できる無料のオープンソースプロジェクトです。 AWXは、Webベースのユーザーインターフェイスと強力なREST APIを提供し、インベントリを他のクラウドソースと管理または同期し、アクセスを制御し、LDAPと統合できるようにします。
このチュートリアルでは、RockyLinux8.3およびCentOS8にDockerを使用してAWXAnsibleAWXをインストールする方法を示します。
前提条件
- 4GB以上のRAMを搭載したRockyLinux8.3またはCentOS8サーバー。
- rootまたはsudo権限を持つユーザーとしてログインします
開始する前に
次のコマンドを使用して、システムに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のインストールとDockerの作成
次に、DockerをインストールしてDockerコンテナ内でAWXを実行する必要があります。デフォルトでは、Dockerの最新バージョンはデフォルトのCentOS 8リポジトリで利用できないため、システムに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 version 19.03.7, build 7141c199a2
次に、Dockerサービスを開始し、次のコマンドを使用してシステムが再起動した後に開始できるようにします。
systemctl start docker systemctl enable docker
次のコマンドを使用して、Dockerサービスのステータスを確認できます。
systemctl status docker
次のようなものが表示されます:
? docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2020-03-11 02:36:04 EDT; 23min ago Docs: https://docs.docker.com Main PID: 5882 (dockerd) Tasks: 101 Memory: 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/daemon/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 containerd-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-compose version 1.25.4, build unknown
最後に、次のコマンドを実行して、python3を使用するようにpythonコマンドを設定します。
alternatives --set python /usr/bin/python3
Ubuntu20.04およびUbuntu21.04にGoogleChromeをインストールする方法
CentOS 8AnsibleAWXをインストールする
まず、次のコマンドを使用して、GitHubリポジトリから最新バージョンのAnsibleAWXをダウンロードします。
git clone https://github.com/ansible/awx.git
次に、次のコマンドを使用してインベントリファイルを暗号化するための秘密鍵を作成します。
openssl rand -base64 30
次の出力が得られます:
R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep
注 :インベントリファイルに貼り付ける必要があるため、テキストエディタにコピーして貼り付けることで表示される秘密鍵を書き留めます。
次に、ディレクトリawx / Installer /に移動し、テキストエディタnano
を使用してインベントリファイルを編集します。 :
cd awx/installer/ nano inventory
次の行を変更します:
[all: vars] dockerhub_base = ansible awx_task_hostname = awx awx_web_hostname = awxweb postgres_data_dir = "/ var / lib / pgdocker" host_port = 80 host_port_ssl = 443 docker_compose_dir = "~ / .awx / awxcompose" pg_username = awx pg_password = awxpass pg_database = awx pg_port = 5432 pg_admin_password = password rabbitmq_password = awxpass rabbitmq_erlang_cookie = cookiemonster admin_user = admin admin_password = password create_preload_data = True secret_key = R + kbcDEUS8DlAftAbtWafVfLZ0lUy + Paqo3fEtep awx_official = true awx_alternate_dns_servers = "8.8.8.8,8.8.4.4" project_data_dir = / var / lib / awx / projects
完了したら、ファイルを保存して閉じます。次に、Postgresのディレクトリを作成します:
mkdir /var/lib/pgdocker
最後に、次のコマンドを実行してAWXをインストールします。
ansible-playbook -i inventory install.yml
インストールが正常に完了すると、次の出力が表示されます。
skipping: [localhost] TASK [local_docker : Load web image] ********************************************************************************************************** skipping: [localhost] TASK [local_docker : Load task image] ********************************************************************************************************* skipping: [localhost] TASK [local_docker : Set full image path for local install] *********************************************************************************** skipping: [localhost] TASK [local_docker : Set DockerHub Image Paths] *********************************************************************************************** ok: [localhost] TASK [local_docker : Create ~/.awx/awxcompose directory] ************************************************************************************** changed: [localhost] TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item=environment.sh) changed: [localhost] => (item=credentials.py) changed: [localhost] => (item=docker-compose.yml) changed: [localhost] => (item=nginx.conf) TASK [local_docker : Render SECRET_KEY file] ************************************************************************************************** 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] PLAY RECAP ************************************************************************************************************************************ localhost : ok=14 changed=6 unreachable=0 failed=0 skipped=95 rescued=0 ignored=0
上記のコマンドは、AWXに必要なすべてのDockerコンテナを作成して起動します。次のコマンドを使用して、実行中のコンテナを確認できます。
docker ps
次の出力が表示されます:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b91575d64b1 ansible/awx_task:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 8052/tcp awx_task 9827b9831fa5 ansible/awx_web:9.2.0 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web 47300ec1c26f postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 166b153faa27 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" About a minute ago Up 58 seconds 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq 0f36c9784f74 memcached:alpine "docker-entrypoint.s…" About a minute ago Up About a minute 11211/tcp awx_memcached
Ubuntu20.04にLaravelをインストールする方法
SELinuxとファイアウォールの構成
デフォルトでは、SELinuxはCentOS 8で有効になっています。Docker環境でAWXが機能するように、SELinuxを無効にすることをお勧めします。次のファイルを編集して無効にできます:
nano /etc/sysconfig/selinux
次の行を見つけます:
SELINUX=enforcing
そして、それを次の行に置き換えます:
SELINUX=disabled
完了したら、ファイルを保存して閉じます。次に、システムを再起動して変更を実装します。次に、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 --reload
AWXWebインターフェイスアクセス
次に、Webブラウザーを開き、URL http://domain_or_server-ipを入力します。 AWXログインページに移動します:
インベントリファイルに設定した管理者のユーザー名とパスワードを入力し、[サインイン]ボタンをクリックします 。次のページにAWXのデフォルトのダッシュボードが表示されます。
結論
おめでとう! Rocky linux8.3およびCentOS8にDockerを使用してAWXを正常にインストールしました。これで、AWXWebインターフェイスを使用してAnsibleプロジェクトを簡単に管理および制御できます。
Ubuntu20.04にJavaをインストールして構成する方法