LoginSignup
29
24

More than 5 years have passed since last update.

vpsにssh接続してansibleのpingを通すまで

Last updated at Posted at 2016-02-16

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:

passphraseについて

これでid_rsaとid_rsa.pubが生成できました。
id_rsaをmacに登録して、id_rsa.pubをサーバーの方に登録します。
次にconfigファイルを編集。
$ vi config

~/.ssh/config
host (サーバーのホスト名)
  HostName (サーバーのIPアドレス)
  User (ログインするユーザー名)
  IdentityFile (生成した秘密鍵のパス) ここでは (~/.ssh/id_rsa)

続いて/private/etc/hostsも編集します。

$ vi /private/etc/hosts

/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の設定を変えます。

/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

~/foo/hosts
(サーバーのホスト名) # これを追記

$ vi ansible.cfg

~/foo/ansible.cfg
#inventory      = /etc/ansible/hosts
↓ #以下に書き換える
inventory = hosts

編集し終わったら、再度pingを試す。

 $ ansible (サーバーのホスト名) -m ping
(サーバーのホスト名) | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

上記のようになれば成功です。

29
24
0

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
29
24