前回に引き続き、AWS CloudShellについての記事となります。今回は、Ansibleを使用してEC2を操作してみました。過去の記事で、ローカルのPC環境からAnsibleを実行したことがあるのですが、同じ操作をAWS CloudShellで実行しましたので、手順を共有いたします。
ローカルPCからAnsibleを実行した時の記事はこちらです。
AWS CloudShellでAnsibleを実行する手順
Ansible実行環境の準備
Pythonのバージョンを確認
$ python
Python 2.7.18 (default, Jun 10 2021, 00:11:02)
pipとAnsibleのインストール
$ sudo yum update
$ sudo yum install pip
$ sudo pip install ansible
Ansible定義ファイルのクローン
Codecommitで以前作成したAnsible定義をクローンします。
$ mkdir ansible
$ cd ansible
$ sudo git clon <リポジトリ名>
秘密鍵をAWS CloudShellに設置
$ vi ~/.ssh/<キーペア名>
$ chmod 600 ~/.ssh/<キーペア名
Ansibleの実行
今回は、apt updateとアプリケーションのインストールをAnsibleで実行しています。無事にAnsibleの実行に成功しました。
$ ansible-playbook web.yml -i hosts/prd
PLAY [Deploy web server] *********************************************************************************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************
ok: [54.64.xx.xxx]
TASK [apt : Upgrade all package] *************************************************************************************************************************************************************************************************
changed: [54.64.xx.xxx]
TASK [apt : Install apt packages] ************************************************************************************************************************************************************************************************
ok: [54.64.xx.xxx]
PLAY RECAP ***********************************************************************************************************************************************************************************************************************
[54.64.xx.xxx] : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
まとめ
AWS CloudShellでは、Ansibleも手軽に実行できることが分かりました。AWS CloudShellは、ほぼ無料で使用できるため、用途によってはCloud9よりも使い勝手が良いのではないかと思いました。