subtitle

RaiseTechの各種コースをはじめとしたイロイロな学習の記録

Ansibleを使う前の事前準備(SSH編)

AnsibleはWindows環境では扱いづらいので、EC2を新規に作成してそこでうごかしてみることにする。



Ainsible用のインスタンスを新規作成

AWSのコンソールからEC2 > インスタンスを起動

Amazon Linux2を選択


インスタンスタイプは、m2.micro


インスタンス数は2個(インスタンスAとB)

ネットワークやサブネット、セキュリティグループは既存のものを使用

キーペアもあらかじめ作成しておいたものを設定



インスタンスAに対してローカルPCからSSHできることを確認

ローカルPCはWindowsなので、TeraTermを使ってインスタンスAに対してSSH接続してみる。

キーペアは事前にコンソールで作成済みのため、秘密鍵(.pem)はローカルPC上に保管してある前提。



インスタンスAからインスタンスBに対してSSHできることを確認

今回は、インスタンスAとBを同時に作っていて、どちらのインスタンスにも同じキーペアを設定している。

キーペアは、いずれもインスタンス側が公開鍵なので、インスタンスA→Bに対して公開鍵認証方式でSSHする場合は、インスタンスAの中に秘密鍵(.pem)を置いてやる必要がある。


ローカルPCの秘密鍵を、インスタンスAにコピーする

SCPというコマンドを使って、ローカルPCのファイルをEC2にアップロードする。

書式:scp -i [秘密鍵ファイル] [転送したいファイル] [ユーザー名]@[転送先IPアドレス]:[転送先フォルダ]

scp -i [ローカルPCの秘密鍵のフォルダパス]\keypair4ansible.pem [ローカルPCの転送したいファイルのあるフォルダパス]\keypair4ansible.pem ec2-user@[インスタンスAのパブリックIPv4アドレス]:/home/ec2-user/.ssh/

※-i オプションは、公開鍵認証で使用する秘密鍵を指定するときに使う


秘密鍵のアクセス権を変更する

chmod 600 $HOME/.ssh/keypair4ansible.pem


権限を変更しておかないとこの後でSSHしようとしたときに、下記のように怒られる

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for '/home/ec2-user/.ssh/keypair4ansible.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/ec2-user/.ssh/keypair4ansible.pem": bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).


セキュリティグループのインバウンドルールにインスタンスAを設定

インスタンスAからインスタンスBに対してSSHでアクセスするために、インスタンスBのセキュリティグループのインバウンドルールに、インスタンスAのプライベートIPアドレスを設定



インスタンスA→BにSSHしてみる

ssh -i /home/ec2-user/.ssh/keypair4ansible.pem ec2-user@[インスタンスBのプライベートIPv4アドレス]

接続できればOK



SSH接続で秘密鍵と接続先を省略する設定

いちいち設定するのがめんどくさいので、configファイルを作成する(権限は600で)

touch $HOME/.ssh/config
chmod 600 $HOME/.ssh/config


SSH接続するための情報を入力

Host ssh2B
  HostName 172.16.22.159
  User ec2-user
  IdentityFile ~/.ssh/keypair4ansible.pem


  • Host:エイリアス(ssh [エイリアス]というコマンドになる)
  • HostName:接続したいホスト名(IPアドレスでもOK)
  • User:ユーザー名
  • IdentityFile:秘密鍵のファイル名(フォルダパスも)

※ちなみにconfigファイルでは、$HOMEの記述は使えない


[ec2-user@ip-172-16-23-121 .ssh]$ ssh ssh2B
Last login: Thu Apr 29 06:25:42 2021 from ip-172-16-23-121.ap-northeast-1.compute.internal

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-16-22-159 ~]$

ssh [エイリアス]で公開鍵認証のSSH接続ができる



次は、EC2にAnsibleをインストールする