その他の言語はこちらをお読みください。:
English,
日本語,
Française,
Español.
ラボ環境を調べて理解します。この演習では、以下を対象とします。
最初に必要なのは、管理対象ホストのインベントリーです。これは、Ansible Engine のインベントリファイルーに相当します。それ以外にもたくさんありますが、まずは基本から始めましょう。
admin
としてログインします。このパスワードは、インストラクターから渡されます。Workshop Inventory というインベントリーが現れます。Workshop Inventory をクリックして、Hosts ボタンをクリックします。
~/lab_inventory/hosts
のインベントリー情報は、プロビジョニング目的の一環として Ansible Tower
インベントリーに事前にロードされていました。
$ cat ~/lab_inventory/hosts
[all:vars]
ansible_user=student<X>
ansible_ssh_pass=PASSWORD
ansible_port=22
[web]
node1 ansible_host=22.33.44.55
node2 ansible_host=33.44.55.66
node3 ansible_host=44.55.66.77
[control]
ansible-1 ansible_host=11.22.33.44
警告
実際の環境のインベントリーでは、IP アドレスが異なることがあります。
次に、Tower から管理対象ホストにアクセスするための認証情報を調べます。この Ansible ワークショップのプロビジョニングプロセスの一環として、ワークショップ資格情報はすでに設定されています。
RESOURCES メニューで Credentials を選択します。次に、*Workshop Credential** をクリックします。
次の情報に注意してください。
Parameter | Value |
---|---|
Credential Type | Machine - Machine credentials define ssh and user-level privilege escalation access for playbooks. They are used when submitting jobs to run playbooks on a remote host. |
username | ec2-user which matches our command-line Ansible inventory username for the other linux nodes |
SSH PRIVATE KEY | ENCRYPTED - take note that you can't actually examine the SSH private key once someone hands it over to Ansible Tower |
AnsibleTower からアドホックコマンドを実行することもできます。
Web UIで、RESOURCES → Inventories → Workshop Inventory に移動します。
HOSTS ボタンをクリックしてホストビューに変更し、ホストエントリーの左側にあるボックスにチェックマークを付けて 3 つのホストを選択します。
RUN COMMANDSをクリックします。次の画面で、アドホックコマンドを指定する必要があります。
Parameter | Value |
---|---|
MODULE | ping |
MACHINE CREDENTIAL | Workshop Credentials |
単純な ping モジュールにはオプションは必要ありません。他のモジュールの場合、引数として実行するコマンドを指定する必要があります。**command ** モジュールを試して、アドホックコマンドを使用して実行中のユーザーのユーザー ID を見つけてください。
Parameter | Value |
---|---|
MODULE | command |
ARGUMENTS | id |
ヒント
実行するモジュールを選択します。”Arguments” の隣の疑問符をクリックすると、モジュールの docs ページへのリンクが表示されます。これは便利なのでお試しください。
システムから秘密情報を取得してみるのはどうでしょうか?/etc/shadow を出力してみましょう。
Parameter | Value |
---|---|
MODULE | command |
ARGUMENTS | cat /etc/shadow |
警告
エラーが発生します
最後のはうまく動作しません。すべて赤く表示されています。
最後のアドホックコマンドを再実行しますが、今回は ENABLE PRIVILEGE ESCALATION ボックスにチェックマークを付けます。
ご覧のとおり、今度は成功しました。root として実行する必要があるタスクの場合は、特権を昇格する必要があります。これは、AnsiblePlaybook で使用されている * become: yes** と同じです。
さて、小チャレンジです。アドホックを実行して、パッケージ「tmux」がすべてのホストにインストールされていることを確認します。不明な場合は、上記の
Web UI を介して、または Tower 制御ホストで [ansible@tower ~]$ ansible-doc yum
を実行してドキュメントを参照してください。
警告
回答を以下に示します。
Parameter | Value |
---|---|
yum | command |
ARGUMENTS | name=tmux |
ENABLE PRIVILEGE ESCALATION | ✓ |
ヒント
コマンドの黄色い出力では、Ansible が実際に行ったことを示しています (ここでは、パッケージをインストールする必要がありました)。2 回目にアドホックコマンドを実行すると、出力が緑色になり、パッケージが既にインストールされていることが通知されます。そのため、Ansible での黄色の出力は、「注意」と示しているわけではありません。