- AmazonLinux2023は非対応。AmazonLinux2での使用を推奨。
- amazon-linux-extrasを使用するため。
- EC2のインスタンスプロファイルにIAMロールを設定。
- リソースの作成に必要な権限を付与。
- パラメータ取得のため、
ssm:GetParameter
ポリシーが必要。
以下の流れでインストールを実施し、インスタンスへ初めてログインした段階でAnsibleを使用できる環境を構築。
- SystemsManager ParameterStoreからパラメータの取得
- Ansibleのインストール
- RegionとOutputの設定
- ssh公開鍵と秘密鍵の生成
- ansible-vaultによる鍵の暗号化
- ansible.cfgの設定
- ansibleディレクトリの作成
-
権限の変更
- root権限で実行する性質を持つため、ec2-userで実行したいコマンドには
sudo -u ec2-user -i
、もしくはsudo -u ec2-user
をつけて一時的にユーザーを変更。
- root権限で実行する性質を持つため、ec2-userで実行したいコマンドには
-
SystemsManager ParameterStoreのパラメータ取得
- variableに
ssm get-parameter
コマンドで取得した値が入るので、スクリプトでパラメータを参照する箇所に$variable
の形式で記述。 - パラメータのタイプはString、SecureString関係なく使用可能。
- variableに
variable=$(aws ssm get-parameter --name "parameter_name" --with-decryption --region current_region --output text --query Parameter.Value)
サンプルのデータもインストールする場合は、sudo -u ec2-user -i mkdir ansible
の箇所を以下のコマンドへ修正して使用。
sudo -u ec2-user -i wget https://github.com/Shintaro-Abe/Ansible/archive/refs/heads/main.zip
sudo -u ec2-user -i unzip main.zip
sudo -u ec2-user -i rm main.zip
playbookの実行は、Ansible-mainディレクトリへ移動の上、以下のコマンドを使用。
ansible-playbook -i hosts.ini main.yml
データについては、以下のリポジトリを参照。