wiki:devops/Ansible

Version 1 (modified by yuna, 9 years ago) (diff)

--

Ansibleのメモ

踏み台経由でのAnsibleの実行

外から直接繋がっていないホストをSSHのプロキシサーバ経由で環境構築を行う。下記のような構成を想定する。

Ansible Client   10.0.2.8
     | 
Proxy Server     10.0.2.7
     |
Target Server    192.168.1.7

インベントリファイルは次のような内容を想定。

inventry

[target]
192.168.1.7

認証鍵の作成

ターゲットホストに乗り込むための認証鍵を作成する。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/okamototk/.ssh/id_rsa): Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/okamototk/.ssh/id_rsa.
Your public key has been saved in /home/okamototk/.ssh/id_rsa.pub.
The key fingerprint is:
0d:62:14:09:20:9a:48:79:2b:2a:c2:b9:71:e8:d1:21 okamototk@mypc
The key's randomart image is:
+---[RSA 2048]----+
|..o...oo         |
|++ . ..          |
|+ . . o .        |
| E o . . o       |
|o * .   S .      |
|+* o             |
|+ =              |
| o               |
|                 |
+-----------------+

認証鍵のコピー

作成された~/.ssh/id_rsa.pubをTargeサーバの.ssh/authorized_keysにコピーする。

SSH設定ファイルを作成

プロキシ経由でSSH接続するための接続設定ファイルを作成する。

sshconfig

Host *
     IdentityFile /root/.ssh/id_rsa
     ProxyCommand ssh -W %h:%@ -w 120 root@10.0.2.7

下記のコマンドでAnsible ClientからTargetホストにSSH接続できるか確認。

$ ssh -F sshconfig root@192.168.1.7

Ansible実行

上記の設定ファイルをANSIBLE_SSH_ARGSで指定して、ansibleを実行するだけ

$ export ANSIBLE_SSH_ARGS=' -F  sshconfig'
$ ansible-playbook -i inventy site.yml