Ansible : 基本的な操作方法2015/07/15 |
Ansible の基本的な利用方法です。書式は以下のようになります。
⇒ ansible [対象サーバー] [オプション] -m [モジュール] -a [モジュールの引数]
※ モジュールは非常に多数のものが公開されており、個々の機能は公式ドキュメントで参照可能です。
⇒ http://docs.ansible.com/modules_by_category.html
Ansible は管理対象クライアントへ SSH アクセスするため、認証が必要になります。
また、Ansible は一般ユーザーでも利用可能ですが、クライアント上で root 権限を行使する場合は sshd での root ログイン許可 または 事前に sudo による任意の一般ユーザーへの特権行使許可設定、などが必要になります。 |
|
[1] | クライアントに対して root ログイン許可(PermitRootLogin が no 以外) + 鍵認証(キーパスフレーズ無し) の場合は、以下のようなコマンド指定で利用できます。 パスフレーズ付き鍵ペアの場合は SSH-Agent を起動しておけば、同様のコマンド指定で利用可能です。 |
# target_servers に対して Ping モジュールを実行 [root@dlp ~]# ansible target_servers -m ping 10.0.0.51 | success >> { "changed": false, "ping": "pong" } 10.0.0.52 | success >> { "changed": false, "ping": "pong" } |
[2] | 鍵認証ではなく、パスワード認証で接続したい場合は、k オプションを指定してパスワードを入力することで利用可能です。 ただし、前提として、全ホストで同じパスワードが設定されている、且つ SSHPass をインストールしておく必要があります。 |
# target_servers に対して uptime コマンドを実行 [root@dlp ~]# ansible target_servers -k -m command -a "uptime" SSH password: 10.0.0.52 | success | rc=0 >> 10:28:07 up 10 min, 2 users, load average: 0.01, 0.02, 0.03 10.0.0.51 | success | rc=0 >> 10:28:07 up 11 min, 1 user, load average: 0.01, 0.03, 0.05 |
[3] |
SSH での root ログインが禁止されている場合は、任意の一般ユーザーで SSH 接続することになりますが、
root 権限が必要な作業を実施する場合は、全ホストの root パスワードが同じ 且つ それを知っている状態が必要、あるいは事前にターゲットホスト上で
SSH 接続対象ユーザーに対して sudo の設定をしておくなどの対応が必要となります。
前者はセキュリティ面で好ましくありません。
以下はターゲットホスト上で「cent」ユーザーに「cent ALL=(ALL) ALL」を設定した状態での、Ansible ホストからの sudo 権限を利用した接続です。
「-b (--become)」オプションで権限昇格し、「--ask-become-pass」でパスワードを入力します。( sudo で「NOPASSWD」設定している場合は不要)
root ユーザー以外の権限を利用したい場合は「--become-user=xxx」で明示的に指定します。sudo 以外の昇格方法 (sudo | su | pbrun | pfexec | runas) を利用したい場合は「--become-method=xxx」で明示的に指定します。 |
# target_servers に対して /etc/shadow を表示する [cent@dlp ~]$ ansible target_servers -k -m command -a "cat /etc/shadow" -b --ask-become-pass SSH password: SUDO password[defaults to SSH password]: 10.0.0.51 | success | rc=0 >> root:$6$xxxxxxxxxx:15441:0:99999:7::: bin:*:15240:0:99999:7::: daemon:*:15240:0:99999:7::: ..... ..... 10.0.0.52 | success | rc=0 >> root:$6$xxxxxxxxxx:15441:0:99999:7::: bin:*:15240:0:99999:7::: daemon:*:15240:0:99999:7::: ..... ..... |
Sponsored Link |
|