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をインストールする