演習 2.2 - インベントリー、認証情報、アドホックコマンド

Read this in other languages: uk English, japan日本語, brazil Portugues do Brasil.

インベントリーの作成

まず必要なのは、管理対象ホストの一覧です。これは Ansible Engine のインベントリーファイルに相当します。インベントリーにはダイナミックインベントリーなど、高度なものもありますが、まずは基本的なところから始めてみましょう。

<X> <abcd> に関しては環境ごとにユニークな値です。講師の指示に基づき入力してください。
ユーザーは admin パスワードは講師より指示があります。

インベントリの作成は以下のように行います。

ブラウザ下部に、利用可能なインベントリーが表示されていますので確認してみましょう。 Ansible Tower にあらかじめ作成されている Demo Inventory と、今作成した Workshop Inventory の2つが存在していることが分かります。ブラウザ上部に戻って、 Workshop Inventory の中にある ホスト ボタンをクリックすると、まだホストを 1 台も登録していないのでリストが空であることが分かります。

早速ホストを追加してみましょう。まず、登録するためのホスト一覧を取得する必要があります。このラボ環境では、Tower がインストールされている ansible Control Host & Tower 上のインベントリーファイルに利用可能なホスト一覧が記述されていますのでそちらを確認してみます。

Tower サーバーに SSH でログインします。

注意

student<X> の <X> の部分は、各自与えられた Student 番号を入力ください。また、11.22.33.44の部分は、各自与えられた、ansible Control Hot & Tower の IP アドレスを入力ください。

ssh student<X>@11.22.33.44

インベントリーファイルの場所は、Tower ホスト上の、 ~/lab_inventory/hosts です。 cat で確認してみましょう。

$ 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 アドレスは各自固有のものになっていますので、上記とは異なります。

node1、node2 などのホストの名前と IP addresses を控えておいてください。これらの情報を以下の手順で Tower のインベントリーに登録していきます。

これで Tower で管理する 3 台のホストに対するインベントリーファイルの作成が完了です?

マシンの認証情報

Ansible Tower は、ホストやクラウド等の認証情報をユーザーに開示せずに利用可能にするという優れた機能を持っています。 Tower がインベントリー登録したリモートホスト上でジョブを実行できるようにするには、リモートホストの認証情報を設定する必要があります。

メモ

これは Tower が持っている重要な機能の一つ 認証情報の分離の機能です! 認証情報はホストやインベントリーの設定とは別で強固に管理することが可能です。

Tower の重要な機能なので、まずはコマンドラインでラボ環境について確認してみましょう。

SSH 経由で Tower ホストにログインします。

[student<X>@ansible-1 ~]$ ssh student<X>@22.33.44.55
student<X>@22.33.44.55's password:
Last login: Thu Jul  4 14:47:04 2019 from 11.22.33.44
[student<X>@node1 ~]$ sudo -i
[root@node1 ~]#

これはどういう意味でしょう?

マシン認証情報の作成

では早速 Tower で認証情報を作成してみましょう。 Tower 左側のメニューから 認証情報 をクリックします。

plus ボタンをクリックします。

ヒント

Tower では、入力フィールドの横に虫眼鏡アイコンが表示されているときにはクリックすると選択リストが開きます。

これで、後でインベントリーホストに使用する資格情報を設定できました。

アドホックコマンドの実行

Ansible Engine で実行したアドホックコマンドを Tower でも実行してみましょう。

シンプルな ping モジュールにはオプションは必要ありません。しかしながら、他のモジュールの場合、実行には引数が必要な場合があります。次にこのケースを確認してみましょう。先ほどと同様の手順で、今度は command モジュールを使って実行中のユーザーのユーザー ID を確認してみます。

マシンの認証情報も入力して実行の上表示内容を確認します。

ヒント

「引数」の横にある疑問符をクリックすると、モジュールのドキュメントページへのリンクが表示されます。とっても便利ですね。♪

次に、/etc/shadow のファイルの中身を確認するコマンドを発行してみましょう

注意

エラーが発生ます

失敗します、何故でしょう?

理由は、そう、権限昇格が必要なのです。もう一度戻って、 権限昇格の有効化 にチェックを入れて実行してみてください。

今回はうまくいきました。 root 権限で実行する必要があるタスクの場合、権限昇格を有効化する必要があります。これは、 Playbook の記述でもよく見かける become: yes と同じです。

チャレンジラボ: アドホックコマンド

アドホックコマンドを使って、node1, node2 node3 にパッケージ「tmux」をインストールしてください。

ヒント

yum モジュールを利用します。使い方は [ansible@tower ~]$ ansible-doc yum などで確認してみてください。

回答

ヒント

コマンドの黄色の出力は、Ansibleが実際に何かを実行したことを示しています(ここでは、パッケージがインストールされてなかったのでインストールを実行しました)。アドホックコマンドを再度実行すると、出力が緑色になり、パッケージが既にインストールされていることが通知されます。Ansible の黄色は「注意」を意味するわけではありません…;-)。ご注意を…? ;-).


Ansible Tower ワークショップ表紙に戻る