ansible-playbookの際のssh接続の設定
ansible-playbookでサーバーを構築するときに、パスワードやら秘密鍵やらを使って接続すると思いますが、そのときの設定方法についてのメモです。
ansible関係なしの普通のssh接続
###パスワードでssh接続する場合
ssh [接続先のサーバー(ホスト名かIPアドレス)]
このコマンドを実行するとパスワードを聞かれるので入力してください。
鍵認証でssh接続をする場合(鍵は作成されていることを前提とする)
[サーバー側]
公開鍵(authorized_keys)の権限:600
公開鍵の.sshディレクトリの権限:700
[クライアント側]
秘密鍵の権限:600
クライアント側も設定しないと以下のようなエラーが出るので設定しといてください
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ssh -l [接続先のユーザー名] -i [秘密鍵] [接続先のサーバー]
これで接続できると思います。
鍵の生成に関してはOSによって便利なツールがあるのでググってください。
ansible-playbookでのssh接続
inventory_fileにsshの設定を記述する場合
inventory_file
[webservers]
(ホスト名 or IPアドレス)
[webservers:vars]
ansible_port=(sshのポート番号、デフォルト22)
ansible_user=(ssh接続先のユーザー名)
ansible_ssh_pass=(パスワード)
ansible_ssh_private_key_file=(秘密鍵のパス (~/.ssh/id_rsa など))
これで以下のコマンドを実行すればssh接続が通り、playbook.yml
の設定どおりに構築されるはず
ansible-playbook -i inventory_file playbook.yml
inventory_fileの変数は公式のドキュメントを見てください
sshの設定ファイルに記述する場合
~/.ssh/config
Host (何でもよい)
HostName (接続先のホスト名 or IPアドレス)
User (接続先のユーザー名)
Port (sshのポート番号)
IdentityFile ~/.ssh/(秘密鍵)
~/.ssh/config
権限を600にしといたほうがよい
設定が完了すると以下のコマンドでssh接続できるようになる
ssh [HOSTに記述した名称]
inventory_fileが以下のようになっている確認
inventory_file
[webservers]
(~/.ssh/configでHOSTに記述した名称)
これで以下のコマンドを実行すればssh接続が通り、playbook.yml
の設定どおりに構築されるはず
ansible-playbook -i inventory_file playbook.yml