Ansible

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で接続し、そのサーバーのホスト名を取得してデバッグ出力します。

説明

  1. インベントリファイル (hosts):
    • your_remote_server: サーバーの名前(任意の名前を使用できます)。
    • ansible_host: リモートサーバーのIPアドレスまたはホスト名。
    • ansible_user: SSH接続に使用するユーザー名。
    • ansible_ssh_private_key_file: SSH接続に使用する秘密鍵ファイルへのパス。
  2. プレイブック (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接続を行い、プレイブックのタスクを実行します。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

上部へスクロール