LoginSignup
22

More than 3 years have passed since last update.

ansible-playbookでサーバーを構築する時のssh接続に関するメモ

Posted at

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

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
22