MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Ansible
  5. 【Ansible】リモートホストへのPing通信設定手順

【Ansible】リモートホストへのPing通信設定手順

2020 9/18
Ansible
2020年9月16日2020年9月18日

Ansibleをインストールして、操作対象となるサーバーに対しての接続確認は「Ping」を使用します。

ただ、AnsibleのPingは通常のPingとは少し仕様が違っており、SSHログインが前提となる設計となっています。

以下ではAnsibleのPing通信ができるまでの設定についてまとめました。

前回、Ansibleインストールについては以下の記事を参考にしてください。

あわせて読みたい
Ansibleインストール_Docker(CentOS8)コンテナ環境 Dockerコンテナ上でCentOS8を構築し、Ansibleをインストールしたので手順を作成しました。 DockerコンテナでCentOS8の構築手順は以下のページを参考にしてください。 Do...

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

「Ansible」でリモートホストへの通信を正常に成功させるまでの手順

Ansibleの基本的なコマンドパターン(Adhocコマンド)は以下の通りとなります。

$ ansible [pattern] -m [module] -a "[module options]"

以下では、自分自身にPing通信をした例となります。

[root@ansible ~]# ansible localhost -m ping
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

では、リモートホスト向けのPing通信ですが、上記の様に対象機器宛にpingを実行してもエラーとなります。
内容は以下となります。

Ansibleではリモートホストへのpingは「hosts」リストに無いと通信ができない

以下では、リモート対象となるホストへPingを実行した例となります。

[root@ansible ~]# ansible 172.17.0.2 -m ping
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does
not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: 172.17.0.2

Ansibleでは実行する内容によっては対象サーバーへ重大な影響を及ぼす可能性があるため、実行を許可するには「hostsリスト」へ対象ホストのホスト名、もしくはIPアドレスの登録が必要となります。
hostsリストは「/etc/ansible/hosts」で実行対象のホストを追加します。

[root@ansible /]# vim /etc/ansible/hosts 

------以下を追記------
[test]
172.17.0.3
172.17.0.2

hostsに登録してもエラーが出る場合はSSH鍵設定をしていない

hostsリストに対象のホストを追加しても以下の様に別のエラーが発生し、Pingの実行は失敗します。

[root@ansible /]# ansible 172.17.0.2 -m ping
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:Q6qArNJ1WwmOKjNeWKQoCbxBYglmoE1Lg/pzve3wv/s.
ECDSA key fingerprint is MD5:8b:78:8c:f1:4e:e2:d6:5f:9f:46:66:b3:2b:71:6d:46.
Are you sure you want to continue connecting (yes/no)? yes
172.17.0.2 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", 
    "unreachable": true
}

Ansibleは実行対象となるサーバーを操作するために「hosts」の設定が必要となりますが、SSHによる「認証」の設定も必要となります。

以下では簡易的な動作確認として、「-k」オプションを実行した例となります。

[root@ansible ~]# ansible 172.17.0.3 -m ping -k
SSH password: 
172.17.0.3 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

「-k」オプションを使用することにより、操作対象のサーバーのSSHパスワードを入力し、実行する方法となります。
ただし、毎回パスワードを入力するのが面倒なので、秘密鍵の作成と登録をする認証を実施します。

公開鍵と秘密鍵の作成と登録で認証設定をし、Ping通信を成功させる

認証には公開鍵と秘密鍵の作成による方法があります。

毎回、対象ホストへのアクセスにパスワードを入力する手間を省くために、「ssh-keygen」と「ssh-copy-id」を用いて認証を実施します。

まずは、以下コマンドで、公開鍵と秘密鍵を作成します。

[root@ansible ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bjxy5Wh5dUk6vKuj/4hWe5DAqY/T59EgIoP0i6bxW5Y root@ansible
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|  .    . .    .  |
| . o    +  . o . |
|  . + ..S.o.= o  |
|   . =.+ *++ +   |
|. o E .+X.+oo    |
| = o  o=+++o..   |
|. o.   oo===o    |
+----[SHA256]-----+
[root@ansible ~]# 

生成した公開鍵を操作対象サーバーへコピー

上記で、SSHする元(ansible側)で公開鍵を生成したので、それをSSH先のサーバーにコピーするので「ssh-copy-id」と言うコマンドを実行します。

以下は、「ssh-copy-id」コマンドを使用し、対象サーバーへコピーします。

[root@ansible /]# ssh-copy-id 172.17.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.17.0.2's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '172.17.0.2'"
and check to make sure that only the key(s) you wanted were added.

[root@ansible /]# 

公開鍵コピー後に再度Pingを実行

上記で、対象サーバーへの公開鍵をコピーしたら再度Ping通信を実行します。

以下の様に問題なく「SUCCESS」が表示されれば成功です。

[root@ansible /]# ansible 172.17.0.2 -m ping
172.17.0.2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

ホストグループ単位でPingを実施

次にAnsibleのhostsに追加したホストをグループ単位でPing疎通する方法を紹介します。
Ansibleの「hosts」ファイルを開き、以下の様に[dns]と言うグループ配下に2台のホストを追記します。

[root@ansible /]# vim /etc/ansible/hosts 

------追加------
[dns]
172.17.0.3
172.17.0.2

hostsにホストを登録後、以下の様にグループ名[dns]でPingを実行します。
グループに登録されているホスト全てにPingが実行されます。

[root@ansible /]# ansible dns -m ping
172.17.0.3 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
172.17.0.2 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

以上、が「Ansible」のPing疎通設定手順となります。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Ansible
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

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



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次