0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ansible 構築の覚書

Posted at

ansible を触るうえで基礎となる部分のメモ
初期セットアップとネットワーク構成に必要な内容をメモ
これからしばらくの間はLinuxサーバーを立てたらできるだけansibleでセットアップとかをやるようにしてみる

ネットワーク構成

image.png
・Controller から Node に対してSSHが通信許可されているようにすること
・Controller から送られたコマンドを Nodeがpythonで実行するため、Nodeにはpythonの実行環境が必要
・Controller から命令を送るたびにSSHのパスワードが求められるのは煩わしいのでSSHの鍵を最初に登録しておくと楽

ssh-keygen -t rsa
ssh-copy-id -o StricHostKeyChecking=no -i $HOME/.ssh/id_rsa.pub localhost
ssh-copy-id -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa.pub localhost
ssh-copy-id -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa.pub 192.168.2.71
ssh-copy-id -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa.pub 192.168.2.72
ssh-copy-id -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa.pub 192.168.2.73

ssh-copy-id のIPアドレス部分はターゲットノードをすべて指定しておく

ansible の処理の仕組み

・ansibleでYAMLを実行してもPlaybookの内容がそのままNodeで実行されるわけではない。

処理の流れとしては以下のイメージ

1.ControllerがターゲットとなるNodeを選択
2.playbook(YAMLファイル)の記載内容をControllerがpythonの実行コードに変換する
3.ControllerがNodeに対してpythonの実行コードをSFTPで送信する
4.Nodeが受け取ったpythonコマンドを実行して、処理結果をControllerへ送信する
※ このときにansible.builtin.ping などを実行しても、あくまで実行されるのはansibleによるコマンド実行であり、ICMPパケットを使ったpingが行われるわけではない点に注意

ansible コマンド実行例

用意したファイル

inventory.ini
localhost

[target_node]
192.168.2.71
192.168.2.72
192.168.2.73

[target_node] はノードをグループにまとめるための名称なので自由な名前を使用

コマンド実行

[ansible@ansible-controller ]$ ansible -i inventory.ini target_node  -m ansible.builtin.ping
192.168.2.72 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.168.2.73 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}
192.168.2.71 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

通信の可否を判断可能。
実際にICMP-Pingを行っているわけではなく、SSHで通信できたらその応答をpythonが作って送信しているだけ
tcpdumpでキャプチャしても何も出力されません

以上、とりあえず今後も定期的にアウトプットできるといいなぁ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?