VPSはConohaを使いました。
サーバーOS [CentOS Linux release 7.2.1511 (Core)]
手元のPCはmacです。
macは$
サーバーは#
で表示わけしていきます。
ssh鍵認証の設定
.sshディレクトリに移動して、
$ cd ~/.ssh
ssh鍵を生成。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):#名前を変えないならenter
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
これでid_rsaとid_rsa.pubが生成できました。
id_rsaをmacに登録して、id_rsa.pubをサーバーの方に登録します。
次にconfigファイルを編集。
$ vi config
host (サーバーのホスト名)
HostName (サーバーのIPアドレス)
User (ログインするユーザー名)
IdentityFile (生成した秘密鍵のパス) ここでは (~/.ssh/id_rsa)
続いて/private/etc/hosts
も編集します。
$ vi /private/etc/hosts
(サーバーのIPアドレス) (サーバーのホスト名) #これを追記する
でmac側の設定は大丈夫です。
次にサーバーの設定をしていきます。
最初はsshでユーザー名などを指定してサーバーに入ります。
$ ssh -l (ユーザー名) (サーバのIPアドレス)
(ユーザー名)@(サーバーのIPアドレス)'s password:
入ったら、公開鍵を登録します。
# cd /root/.ssh
に移動して、
# vi authorized_keys
authorized_keysを開いて,id_rsa.pubの中身をコピーします。
パーミッションの確認をします。
自分の環境では適切になっていました。
SSH で Permission Denied となる傾向と対策
つぎは/etc/ssh/sshd_config
の設定を変えます。
# vi /etc/ssh/sshd_config
で開いて、
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
上記の3箇所のコメントアウトを解除すればよさそうです。
最後にsshサービスの再起動をすれば設定完了です。
# service sshd restart
以下のコマンドでサーバーに入れたら成功です。
$ ssh (サーバーのホスト名)
ansibleのpingを通す
$ brew install ansible
でansibleをインストールします。
現在のカレントディレクトリをfooとします。
$ pwd ~/foo
ansibleのpingモジュールを使って疎通の確認をします。
$ ansible (サーバーのホスト名) -m ping
[WARNING]: provided hosts list is empty, only localhost is available
エラーで調べてみるとansible-tutorialを見つけました。ここを見ながらやるとよさそうです。
どうやらデフォルトの場所に(/etc/ansible/hosts)と(/etc/ansible/ansible.cfg)が無いようです。
カレントディレクトリでも良いそうなので作ります。
$ touch hosts ansible.cfg
でファイルを作って、ansible.cfg
の方はgithubにあるものの内容をコピーします。
ansible.cfg
$ vi hosts
(サーバーのホスト名) # これを追記
$ vi ansible.cfg
#inventory = /etc/ansible/hosts
↓ #以下に書き換える
inventory = hosts
編集し終わったら、再度pingを試す。
$ ansible (サーバーのホスト名) -m ping
(サーバーのホスト名) | SUCCESS => {
"changed": false,
"ping": "pong"
}
上記のようになれば成功です。