| | 1 | = Ansibleのメモ |
| | 2 | |
| | 3 | == 踏み台経由でのAnsibleの実行 |
| | 4 | |
| | 5 | 外から直接繋がっていないホストをSSHのプロキシサーバ経由で環境構築を行う。下記のような構成を想定する。 |
| | 6 | |
| | 7 | {{{ |
| | 8 | Ansible Client 10.0.2.8 |
| | 9 | | |
| | 10 | Proxy Server 10.0.2.7 |
| | 11 | | |
| | 12 | Target Server 192.168.1.7 |
| | 13 | }}} |
| | 14 | |
| | 15 | インベントリファイルは次のような内容を想定。 |
| | 16 | |
| | 17 | |
| | 18 | === inventry |
| | 19 | {{{ |
| | 20 | [target] |
| | 21 | 192.168.1.7 |
| | 22 | }}} |
| | 23 | |
| | 24 | === 認証鍵の作成 |
| | 25 | ターゲットホストに乗り込むための認証鍵を作成する。 |
| | 26 | |
| | 27 | {{{ |
| | 28 | $ ssh-keygen |
| | 29 | Generating public/private rsa key pair. |
| | 30 | Enter file in which to save the key (/home/okamototk/.ssh/id_rsa): Enter passphrase (empty for no passphrase): |
| | 31 | Enter same passphrase again: |
| | 32 | Your identification has been saved in /home/okamototk/.ssh/id_rsa. |
| | 33 | Your public key has been saved in /home/okamototk/.ssh/id_rsa.pub. |
| | 34 | The key fingerprint is: |
| | 35 | 0d:62:14:09:20:9a:48:79:2b:2a:c2:b9:71:e8:d1:21 okamototk@mypc |
| | 36 | The key's randomart image is: |
| | 37 | +---[RSA 2048]----+ |
| | 38 | |..o...oo | |
| | 39 | |++ . .. | |
| | 40 | |+ . . o . | |
| | 41 | | E o . . o | |
| | 42 | |o * . S . | |
| | 43 | |+* o | |
| | 44 | |+ = | |
| | 45 | | o | |
| | 46 | | | |
| | 47 | +-----------------+ |
| | 48 | }}} |
| | 49 | |
| | 50 | === 認証鍵のコピー |
| | 51 | 作成された~/.ssh/id_rsa.pubをTargeサーバの.ssh/authorized_keysにコピーする。 |
| | 52 | |
| | 53 | === SSH設定ファイルを作成 |
| | 54 | |
| | 55 | プロキシ経由でSSH接続するための接続設定ファイルを作成する。 |
| | 56 | |
| | 57 | ==== sshconfig |
| | 58 | {{{ |
| | 59 | Host * |
| | 60 | IdentityFile /root/.ssh/id_rsa |
| | 61 | ProxyCommand ssh -W %h:%@ -w 120 root@10.0.2.7 |
| | 62 | }}} |
| | 63 | |
| | 64 | 下記のコマンドでAnsible ClientからTargetホストにSSH接続できるか確認。 |
| | 65 | |
| | 66 | {{{ |
| | 67 | $ ssh -F sshconfig root@192.168.1.7 |
| | 68 | }}} |
| | 69 | |
| | 70 | === Ansible実行 |
| | 71 | |
| | 72 | 上記の設定ファイルをANSIBLE_SSH_ARGSで指定して、ansibleを実行するだけ |
| | 73 | |
| | 74 | {{{ |
| | 75 | $ export ANSIBLE_SSH_ARGS=' -F sshconfig' |
| | 76 | $ ansible-playbook -i inventy site.yml |
| | 77 | }}} |