Skip to content

Userdata for using Ansible on EC2.Scripts to retrieve sample code from other repositories are also available.

License

Notifications You must be signed in to change notification settings

Shintaro-Abe/Ansible-userdata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

データについては、以下のリポジトリを参照。

About

Userdata for using Ansible on EC2.Scripts to retrieve sample code from other repositories are also available.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages