SSHでリモートサーバーにアクセスし、サーバーのホスト名をデバッグ出力するだけのプレイブック
以下に、Ansibleのプレイブックを作成しました。このプレイブックは、SSHでリモートサーバーにアクセスし、サーバーのホスト名をデバッグ出力するものです。
まず、インベントリファイル hosts を作成します。ここにリモートサーバーの情報を記載します。
[webservers]
your_remote_server ansible_host=your_remote_server_ip ansible_user=your_username ansible_ssh_private_key_file=path_to_your_private_key
次に、Ansibleプレイブック hostname_debug.yml を作成します。
---
- name: Retrieve and debug hostname
hosts: webservers
gather_facts: no
tasks:
- name: Retrieve hostname
command: hostname
register: hostname_output
- name: Debug hostname
debug:
msg: "The hostname of the server is: {{ hostname_output.stdout }}"このプレイブックを実行するには、以下のコマンドを使用します。
ansible-playbook -i hosts hostname_debug.yml
これにより、指定されたリモートサーバーにSSHで接続し、そのサーバーのホスト名を取得してデバッグ出力します。
説明
- インベントリファイル (
hosts):your_remote_server: サーバーの名前(任意の名前を使用できます)。ansible_host: リモートサーバーのIPアドレスまたはホスト名。ansible_user: SSH接続に使用するユーザー名。ansible_ssh_private_key_file: SSH接続に使用する秘密鍵ファイルへのパス。
- プレイブック (
hostname_debug.yml):hosts: webservers: インベントリファイルで定義されたグループに対して実行。gather_facts: no: ホストに関する事前のファクト収集をスキップ。- タスク:
Retrieve hostname:hostnameコマンドを実行し、ホスト名を取得。Debug hostname: 取得したホスト名をデバッグ出力。
これでAnsibleを使用してリモートサーバーのホスト名をデバッグ出力するプレイブックが完成しました。
はい、ansible_ssh_user という引数はAnsibleが用意しているものです。Ansibleのドキュメントにも記載されている通り、これはリモートホストに接続するためのSSHユーザー名を指定するための標準的な変数です。
Ansibleのインベントリファイルで使用されるSSH関連の一般的な引数には以下のものがあります:
ansible_host: 接続先のホスト名またはIPアドレス。ansible_port: SSH接続に使用するポート番号(デフォルトは22)。ansible_ssh_userまたはansible_user: SSH接続に使用するユーザー名。ansible_ssh_passまたはansible_password: SSH接続に使用するパスワード。ansible_ssh_private_key_file: SSH接続に使用する秘密鍵ファイルへのパス。ansible_become:yesに設定すると、タスク実行時に特権昇格(例:sudo)を使用。ansible_become_user: 特権昇格時に使用するユーザー名。
これらの引数をインベントリファイルで使用することで、Ansibleがリモートホストに対して適切に接続し、タスクを実行できるようになります。
例えば、以下のようにインベントリファイルに記述します:
インベントリファイル (hosts)
[webservers]
your_remote_server ansible_host=your_remote_server_ip ansible_ssh_user=your_username ansible_ssh_private_key_file=path_to_your_private_key
プレイブック (hostname_debug.yml)
---
- name: Retrieve and debug hostname
hosts: webservers
gather_facts: no
tasks:
- name: Retrieve hostname
command: hostname
register: hostname_output
- name: Debug hostname
debug:
msg: "The hostname of the server is: {{ hostname_output.stdout }}"
実行コマンド
ansible-playbook -i hosts hostname_debug.yml
この設定で、Ansibleは ansible_ssh_user 変数を使用してリモートホストにSSH接続を行い、プレイブックのタスクを実行します。

コメント