https://github.com/shintaro-abe/ansible-userdata
Userdata for using Ansible on EC2.Scripts to retrieve sample code from other repositories are also available.
https://github.com/shintaro-abe/ansible-userdata
ansible aws ec2 shellscript userdata
Last synced: 9 months ago
JSON representation
Userdata for using Ansible on EC2.Scripts to retrieve sample code from other repositories are also available.
- Host: GitHub
- URL: https://github.com/shintaro-abe/ansible-userdata
- Owner: Shintaro-Abe
- License: mit
- Created: 2023-05-18T17:28:01.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-24T08:29:16.000Z (over 2 years ago)
- Last Synced: 2025-02-18T00:46:41.946Z (12 months ago)
- Topics: ansible, aws, ec2, shellscript, userdata
- Language: Shell
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ansible-userdata
## 使用について
* __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 `をつけて一時的にユーザーを変更。
* __SystemsManager ParameterStoreのパラメータ取得__
* variableに` ssm get-parameter `コマンドで取得した値が入るので、スクリプトでパラメータを参照する箇所に` $variable `の形式で記述。
* パラメータのタイプはString、SecureString関係なく使用可能。
```
variable=$(aws ssm get-parameter --name "parameter_name" --with-decryption --region current_region --output text --query Parameter.Value)
```
## playbookについて
サンプルのデータもインストールする場合は、` 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
```
データについては、以下のリポジトリを参照。