Ansible AWXは、Ansibleタワーのオープンソースバージョンです。 AWXは、Ansible上に構築されたWebベースのユーザーインターフェイス、REST API、およびタスクエンジンを提供します。これは、AWXの商用派生物であるTowerのアップストリームプロジェクトです。
このチュートリアルでは、Dockerを使用してAWXをインストールおよび構成する方法を示します。
私はcentos7の最小インストールと許容モードのSELinuxで3台のサーバーを使用します。
- 192.168.1.25AWXサーバー
- 192.168.1.21クライアント1
- 192.168.1.22 client2
AWXサーバーのシステム要件
- 少なくとも4GBのメモリ。
- 少なくとも2つのCPUコア。
- 少なくとも20GBのスペース。
- Docker、Openshift、またはKubernetesを実行しています。
SELinux構成を確認してください。
sestatus
結果:
[[email protected]〜]#sestatusSELinux status:enabledSELinuxfs mount:/ sys / fs / selinuxSELinux root directory:/ etc / selinuxLoaded policy name:targetedCurrent mode:permissiveMode from config file:permissivePolicy MLS status:enabledPolicy deny_unknown status:allowedMaxカーネルポリシーバージョン:28 [[メール保護]〜]#
Firewalldを無効にします。
[[emailprotected]インストーラー]#systemctl stopfirewalld [[emailprotected]インストーラー]#systemctl disable FirewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink / etc / systemd / system / dbus-org.fedoraproject.FirewallD1.service。[[メールで保護された]インストーラー]#
/ etc / hosts
にホストエントリを追加する[[email protected]〜]#cat /etc/hosts192.168.1.25 awx.sunil.cc awx192.168.1.21 client1.sunil.cc client1192.168.1.22 client2.sunil.cc client2 [[email protected ]〜]#
epelリポジトリを有効にします。
[[email protected]〜]#yum install -y epel-release
パッケージをインストールします。
[[email protected]〜]#yum install -y yum-utils device-mapper-persistent-data lvm2 ansible git python-devel python-pip python-docker-py vim-enhanced
dockerce安定版リポジトリを構成します。
[[email protected]〜]#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Dockerをインストールしています。
[[email protected]〜]#yum install docker-ce -y
Dockerサービスを開始します。
[[email protected]〜]#systemctl start docker
Dockerサービスを有効にします。
[[email protected]〜]#systemctl enable docker
AWXリポジトリのクローンを作成します。
[[email protected]〜]#git clone https://github.com/ansible/awx.git [[email protected]〜]#cd awx / [[email protected] awx]#git clone https:/ /github.com/ansible/awx-logos.git[[メール保護]awx]#pwd / root / awx[[メール保護]awx]#
/ root/awx内のインストーラーディレクトリに移動します。
[[メール保護]awx]#cdインストーラー/
インベントリ内の次のパラメータを編集します。
[[email protected] awx]#vim Inventorypostgres_data_dir =/ var / lib / pgdockerawx_official =trueawx_alternate_dns_servers ="4.2.2.1,4.2.2.2" project_data_dir =/ var / lib / awx / projects
構成は次のようになります。
[[email protected] Installer]#cat Inventory | grep -v "#" localhost ansible_connection =local ansible_python_interpreter ="/ usr / bin / env python" [all:vars] dockerhub_base =ansibledockerhub_version =latestrabbitmq_version =3.6.14awx_secret_key =awxsecretpostgres_data_dir =/ var / lib / pgdockerhost_port =80docker_compose_dir =/ var / lib / awxpg_username =awxpg_password =awxpasspg_database =awxpg_port =5432awx_official =trueawx_alternate_dns_servers ="4.2.2.1,4.2.2.2" project_data_dir =/ var保護された]インストーラー]#
Dockerを介してAWXをデプロイしています。
[[emailprotected]インストーラー]#ansible-playbook -i Inventory install.yml -vv
サーバーの構成によっては、しばらく時間がかかります。
AWXのansibleplayのデプロイを確認するには、以下のコマンドを実行します。
[[email protected] Installer]#docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES318c7c95dcbb ansible / awx_task:latest "/ tini-/ bin /sh-c。" 12分前アップ12分8052/tcp awx_task642c2f272e31 ansible / awx_web:latest "/ tini-/ bin /sh-c。" 12分前12分アップ0.0.0.0:80->8052/tcp awx_web641b42ab536f memcached:alpine"docker-entrypoint.s。" 18分前アップ18分11211/tcp memcachedb333012d90acrabbitmq:3「docker-entrypoint.s」 19分前アップ19分4369/tcp、5671-5672 / tcp、25672 / tcprabbitmqada52935513a postgres:9.6"docker-entrypoint.s。" 19分前アップ19分5432/tcp postgres [[メール保護]インストーラー]#
AWXの準備が整い、ブラウザからアクセスできます。
ユーザー名は「admin」、パスワードは「password」です。
AWXサーバーからのパスワードなしのログインを構成します
3つのホストすべてにユーザーを作成します。 3台のサーバーすべてで以下の手順に従います。
[[email protected]〜]#useradd ansible [[email protected]〜]#useradd ansible [[email protected]〜]#useradd ansible
sshキーの生成:
[[email protected]〜]#su --ansible [[email protected]〜] $ ssh-keygen公開/秘密rsaキーペアを生成しています。キーを保存するファイルを入力してください(/home/ansible/.ssh/id_rsa ):作成されたディレクトリ'/home/ansible/.ssh'。パスフレーズを入力(パスフレーズがない場合は空):同じパスフレーズをもう一度入力:IDが/home/ansible/.ssh/id_rsaに保存されました。公開鍵が保存されました/home/ansible/.ssh/id_rsa.pubにあります。キーの指紋は次のとおりです:SHA256:j30gyTVQxcWIocdKMbVieZvfJzGkCjXhjtc5qu + fE8o[メールで保護]キーのランダムアートイメージは次のとおりです:+ --- [RSA 2048] ---- + | +o==。+。 || O.oo。 || *@。 || + @ * + || S * =o || B =.o o || ..=。o.o。|| .E ... o || .oo.o。 | + ---- [SHA256] ----- + [[メール保護]〜] $
3つのサーバーすべてにsudoersエントリをファイルの最後のエントリとして追加します。
[[email protected]〜]#visudoansible ALL =(ALL)NOPASSWD:ALL
id_rsa.pubのコンテンツを3台のサーバーすべてのauthorized_keysにコピーします。
<前> [メール]が保護の.ssh] $猫id_rsa.pubssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80 + ftSyPHAdeV6KOwADOu6MXvMXHMK3EDe4jn + R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5dqKlP5ePkRKal4TncV + tlhueDaKz8QfvXgz + y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx / 2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI / + fS7aFiaqhXpt6hI4xndJf [Eメール保護] [[メール]が保護の.ssh] $ PWD /ホーム/ ansible /.ssh[[email保護]〜] $猫の.ssh / authorized_keysssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80 + ftSyPHAdeV6KOwADOu6MXvMXHMK3EDe4jn + R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5dqKlP5ePkRKal4TncV + tlhueDaKz8QfvXgz + y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx / 2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI / + fS7aFiaqhXpt6hI4xndJf [Eメール保護] [[Eメール保護]〜] $ chmodの600の.ssh / authorized_keysにclient1
[[email protected]〜]#su --ansible [[email protected]〜] $ ls [[email protected]〜] $ mkdir .ssh [[email protected]〜] $ cat .ssh / authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4Qmuzj + ftSyPHAdeV6KOwADOu6MXvMXHMK3EDe4jn + R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5dqKlP5ePkRKal4TncV + tlhueDaKz8QfvXgz + y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx / 2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI / + fS7aFiaqhXpt6hI4xndJf [Eメール保護] [[Eメール保護]〜] $ chmodの700の.ssh $ chmodの600の.ssh / authorized_keysに[[メール]〜保護]
client2
[[email protected]〜]#su --ansible [[email protected]〜] $ ls [[email protected]〜] $ mkdir .ssh [[email protected]〜] $ cat .ssh / authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4Qmuzj + ftSyPHAdeV6KOwADOu6MXvMXHMK3EDe4jn + R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5dqKlP5ePkRKal4TncV + tlhueDaKz8QfvXgz + y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx / 2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI / + fS7aFiaqhXpt6hI4xndJf [Eメール保護] [[Eメール保護]〜] $ chmodの700の.ssh $ chmodの600の.ssh / authorized_keysに[[メール]〜保護]
キーレスログインの検証:
[[email protected] x .ssh] $ ssh client1ホスト「client1(192.168.1.21)」の信頼性を確立できません。ECDSAキーフィンガープリントはSHA256:TUQNYdF4nxofGwFO7 / z + Y5dUETVEI0xPQL4n1cUcoCI.ECDSAキーフィンガープリントはMD5です: 5d:73:1f:64:0e:03:ac:a7:7b:33:76:08:6d:09:90:26接続を続行してもよろしいですか(はい/いいえ)? yes警告:既知のホストのリストに「client1,192.168.1.21」(ECDSA)を恒久的に追加しました。最終ログイン:Sun Mar 4 13:39:33 2018 [[email protected]〜] $ exitlogoutConnection toclient1closed。[[emailprotected ] .ssh] $ [[email protected] .ssh] $ ssh client2ホスト「client2(192.168.1.22)」の信頼性を確立できません。ECDSAキーフィンガープリントはSHA256:7JoWzteeQBwzc4Q3GGN + Oa4keUPMca/jtqv7gmmEZxg.ECDSAキーフィンガープリントはMDです。 :85:77:3a:a3:07:31:d4:c1:41:ed:30:db:74:b4:ce:67。接続を続行してもよろしいですか(はい/いいえ)? yes警告:既知のホストのリストに「client2,192.168.1.22」(ECDSA)を恒久的に追加しました。最終ログイン:Sun Mar 4 13:51:27 2018 [[email protected]〜] $ exitlogoutConnection toclient2closed。[[emailprotected ] .ssh] $
次に、このアイコンをクリックして、[資格情報]->[追加]
に移動します。
組織を選択し、ユーザー名と説明を入力します。
ここで、ユーザー名は「ansible」です
資格情報タイプで「マシン」を選択し、詳細を入力します。
AWXサーバーから秘密鍵を取得します。
[[email protected] .ssh] $ pwd / home / ansible / .ssh [[email protected] .ssh] $ cat id_rsaid_rsa id_rsa.pub [[email protected] .ssh] $ cat id_rsa ----- BEGIN RSA PRIVATE KEY ----- MIIEpAIBAAKCAQEAuEJrs41ZxlJ09aOsRlw9wwgz1DIk39MVJDlOJGK5KcR2GdZ1htTATRlgoclqG50ymA4eHPNPn7UsjxwHXleijsAAzrujF7zFxzCtxA3uI5 / kdGQK0ExBdqikgYL3tt8ELuSKKnVo7waCBBqscNy5GG3RsWeXaipT + Xj5ESmpeE53FfrZYbng2is / EH714M / sto3NxzFgB + mu1GLAyrrQ7bZgw1VMHzHL6EvY9lWDlB5Ewnp8f9mN9velC5lgkRFvXun01y5jqMCAQwGq9NQk4ZgM2ApwQzQBTrKJYfXS9QisCwrzsitVAYCZX683RiP / n0u2hYmqoV6beoSOMZ3SXwIDAQABAoIBAQCcfiUU6S9fJfcaDTmqxHrcIyJJzZDN3GvvSRBaDNLwa2BWz3Mf4Z + 1m6Ebp4IME / W9ePgQZIGyxeAjZ43Gja2Nifrlmi2JYpWjeG + MvLwN26XfSHx6rtlGmzKkoIQc98qIvSevqepGYAOa0sC0VnKKEfNvtei + jVam4hy / E9 / oQWHV8c / yueLWpCx2pWOy5m7WVLdwNQSK + 8pusxHLFTNCSC9wddBN80FVxhJQ7L4D2DzcprhcfUz6Uz7Ju7v8MtSksirDnaGliWJ3NvxhntJYKvgQ30pvBr // y0lYnAB + O0jJhOpHlgD2hNSlI8sgUxmVyl + gC9Dhnq + v1uKm3CThAoGBAOx + YIGGT / ymqJ53k8Dj4keKctI4 + E3p / 7Tr2jEyRff177VUjITQUnrRTw1W + XSE5cszitVYbv0WUwTJoSSrKaRaVG7iORaqcv0LkG8gnlc rcifRXSl55xMsPCw0adwtoyhrHQLbENntMl + iQw2JbE6fvldvNe2kPdL3B2T7Jw1RAoGBAMd1GvsOHLaKtTD0me + wgGnql0GIp90elE7rQ1p6VMxZkE68b + 0jX9xHAt2zxocR84 + LGi6uAZvBqnwmH48c7Do6 / oulrJXH2OcT6S8 + F / kM7PWNT0Z0J0MW / + npVoPwSihZN4 / uanR47L0YYVlTRgxmakSUZnitrEz754V + YjivAoGBAM1qtC6tWHrO0 / XZTbik + F5FrphVLbCXiSlAF6TV0xqfP5gUmX2faZUOi4i9vC3uZZ9L5NKNXtJseq3U6Shtl90PLPmnfAjpArozOkCcZ4y1yxE09KPbI9BugtGusSizZ13rNCbP22I / eprA2Vc / v5jHflB547DIEX9WXNDkqjYRAoGACD3ag40tuo04t3Ej + zd71uSOo3KWHRjqX + hwvAhaAKeiwt4ecdoIV / 3HLIoFJgej3MaOqmceQeVaug6JN0ympjFR20tZOkcru0CjXgRe0Tergun34J1kEe2dXXj6zjDbn5cwKI5db7qfbaDYROyf9Fs3AOZw5YOnnva5tlZmkJkCgYB0tuVLQSOWsqjTAgkw7tDIMOds9o8dpGJTvXxcs2qWJIDQPQWxHVSlQimh5DFBkrNDAYKKC386KaZOEKwG7G1YuGbh1 + ns3piscJaBi2lPaeA1Y / QA6pCTt9Hbdzre5x0gDbKSHOk + QLJkVdfQX9jamRE6W0k0pXVF6ur8N5zfxA ==----- END RSA秘密鍵-----[[メール保護].ssh]$
秘密鍵(例)。
----- BEGIN RSA PRIVATE KEY ----- MIIEpAIBAAKCAQEAuEJrs41ZxlJ09aOsRlw9wwgz1DIk39MVJDlOJGK5KcR2GdZ1htTATRlgoclqG50ymA4eHPNPn7UsjxwHXleijsAAzrujF7zFxzCtxA3uI5 / kdGQK0ExBdqikgYL3tt8ELuSKKnVo7waCBBqscNy5GG3RsWeXaipT + Xj5ESmpeE53FfrZYbng2is / EH714M / sto3NxzFgB + mu1GLAyrrQ7bZgw1VMHzHL6EvY9lWDlB5Ewnp8f9mN9velC5lgkRFvXun01y5jqMCAQwGq9NQk4ZgM2ApwQzQBTrKJYfXS9QisCwrzsitVAYCZX683RiP / n0u2hYmqoV6beoSOMZ3SXwIDAQABAoIBAQCcfiUU6S9fJfcaDTmqxHrcIyJJzZDN3GvvSRBaDNLwa2BWz3Mf4Z + 1m6Ebp4IME / W9ePgQZIGyxeAjZ43Gja2Nifrlmi2JYpWjeG + MvLwN26XfSHx6rtlGmzKkoIQc98qIvSevqepGYAOa0sC0VnKKEfNvtei + jVam4hy / E9 / oQWHV8c / yueLWpCx2pWOy5m7WVLdwNQSK + 8pusxHLFTNCSC9wddBN80FVxhJQ7L4D2DzcprhcfUz6Uz7Ju7v8MtSksirDnaGliWJ3NvxhntJYKvgQ30pvBr // y0lYnAB + O0jJhOpHlgD2hNSlI8sgUxmVyl + gC9Dhnq + v1uKm3CThAoGBAOx + YIGGT / ymqJ53k8Dj4keKctI4 + E3P / 7Tr2jEyRff177VUjITQUnrRTw1W + XSE5cszitVYbv0WUwTJoSSrKaRaVG7iORaqcv0LkG8gnlcrcifRXSl55xMsPCw0adwtoyhrHQLbENntMl + iQw2JbE6fvldvNe2kPdL3B2T7Jw1RAoGBAMd1GvsOHLaKtTD0me + wgGnql0GIp90elE7rQ1p6VMxZkE68b + 0jX9xHAt2zxocR84 + LGi6u AZvBqnwmH48c7Do6 / oulrJXH2OcT6S8 + F / kM7PWNT0Z0J0MW / + npVoPwSihZN4 / uanR47L0YYVlTRgxmakSUZnitrEz754V + YjivAoGBAM1qtC6tWHrO0 / XZTbik + F5FrphVLbCXiSlAF6TV0xqfP5gUmX2faZUOi4i9vC3uZZ9L5NKNXtJseq3U6Shtl90PLPmnfAjpArozOkCcZ4y1yxE09KPbI9BugtGusSizZ13rNCbP22I / eprA2Vc / v5jHflB547DIEX9WXNDkqjYRAoGACD3ag40tuo04t3Ej + zd71uSOo3KWHRjqX + hwvAhaAKeiwt4ecdoIV / 3HLIoFJgej3MaOqmceQeVaug6JN0ympjFR20tZOkcru0CjXgRe0Tergun34J1kEe2dXXj6zjDbn5cwKI5db7qfbaDYROyf9Fs3AOZw5YOnnva5tlZmkJkCgYB0tuVLQSOWsqjTAgkw7tDIMOds9o8dpGJTvXxcs2qWJIDQPQWxHVSlQimh5DFBkrNDAYKKC386KaZOEKwG7G1YuGbh1 + ns3piscJaBi2lPaeA1Y / QA6pCTt9Hbdzre5x0gDbKSHOk + QLJkVdfQX9jamRE6W0k0pXVF6ur8N5zfxA ==----- END RSA PRIVATE KEY -----
ssh秘密鍵の下にある秘密鍵をコピーし、[保存]をクリックします。
[インベントリ]をクリックし、[インベントリの追加]をクリックします。
それに応じて詳細を入力してください。
[ホスト]->[ホストの追加]をクリックします。
以下の詳細を追加してください:
client2の以下の詳細を追加します。
AWXを介して接続をテストします。
両方のホストを選択し、実行コマンドをクリックします。
pingおよびその他の詳細を選択し、[起動]をクリックします。
このチュートリアルは以上です。次のチュートリアルでは、rpmを介してAWXをインストールする方法と、プレイブックを実行する方法、以降のチュートリアルでAPI呼び出しを行う方法を紹介します。