= 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 }}}