Ubuntu 24.04
Sponsored Link

Ansible : 基本操作2024/07/31

 

Ansible の基本的な利用方法です。書式は以下のようになります。

⇒ ansible [対象サーバー] [オプション] -m [モジュール] -a [モジュールの引数]

※ モジュールは非常に多数のものが公開されており、個々の機能は公式ドキュメントで参照可能です。
⇒ https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

Ansible は管理対象クライアントへ SSH アクセスするため、認証が必要になります。
また、Ansible は一般ユーザーでも利用可能ですが、管理対象クライアント上で root 権限を行使する場合は、事前に [sudo] による任意の一般ユーザーへの特権行使許可設定、などが必要になります。

[1] 管理対象クライアントに対して root ログイン許可 (PermitRootLogin が no 以外) + 鍵ペア認証 (キーパスフレーズ無し) の場合は、以下のようなコマンド指定で利用できます。 パスフレーズ付き鍵ペアの場合は SSH-Agent を起動しておけば、同様のコマンド指定で利用可能です
# [10.0.0.50] に対して ping モジュールを実行

root@dlp:~#
ansible 10.0.0.50 -m ping

10.0.0.50 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
[2]

対象ホストで [sudo] 実行が許可されている任意の一般ユーザーで接続する場合は以下のように実行します。

例として、[ubuntu] ユーザーで実行します。
[-b (--become)] オプションで権限昇格し、[--ask-become-pass] でパスワードを入力します。
* [sudo] で [NOPASSWD] 設定している場合は [--ask-become-pass] 不要

root ユーザー以外の権限を利用したい場合は [--become-user=xxx] で明示的に指定します。
[sudo] 以外の昇格方法 [sudo | su | pbrun | pfexec | runas] を利用したい場合は [--become-method=xxx] で明示的に指定します。
また、[-k] オプションは、SSH 鍵ペアではなく、パスワード認証でログインする場合に必要なオプションです。
[-k] オプションでパスワード認証する場合は、事前に [sshpass] をインストールしておく必要があります。
# [target_servers] に対して [/etc/shadow] を表示

ubuntu@dlp:~$
ansible target_servers -k -m command -a "cat /etc/shadow" -b --ask-become-pass

SSH password:
BECOME password[defaults to SSH password]:   通常 SSH パスワードと同じのため 空 Enter で OK
10.0.0.51 | CHANGED | rc=0 >>
daemon:*:19836:0:99999:7:::
bin:*:19836:0:99999:7:::
sys:*:19836:0:99999:7:::
.....
.....
10.0.0.52 | CHANGED | rc=0 >>
daemon:*:19836:0:99999:7:::
bin:*:19836:0:99999:7:::
sys:*:19836:0:99999:7:::
.....
.....
関連コンテンツ