株式会社サーバーワークス's job postings
- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
全国のAnsible愛好家の皆様こんにちは、技術4課 岩本です。
さて、ラノベ風のタイトルで始まりました今回ですが、
Windowsユーザー/Macユーザーが混在してたりすると、セットアップ手順が各端末であったり、
もしくはプロビジョニング用サーバーを用意したりと、それなりに手間がかかるので、
Ansibleの実行もサーバーレスでできないかしら?と思ったのが事の始まりです。
git push
するだけで、Ansibleの実行ができるようになりました!VisualStudioCode
とか Atom
なら、それ以外不要。CodeCommit
上にあるGitリポジトリに、AnsiblePlaybook
とCodeBuildで利用するbuildspec.yml
をPushします。CodeCommit
へのPushをトリガーとして CodePileline
が、Pushされた内容をCodeBuild
CodeBuild
では事前に指定したDockerコンテナ
が起動し、buildspec.yml
を元に、処理が実行されます。buildspec.yml
に記載されたコマンドがDockerコンテナ上で実行されます。buildspec.yml
にAnsibleを適切に起動する記載をする事で、Codebuild上でAnsibleの実行が可能となりました。buildspec.yml
---
version: 0.2
phases:
pre_build:
commands:
- sudo apt-get update -y
- sudo apt-get install software-properties-common -y
- sudo apt-add-repository ppa:ansible/ansible -y
- sudo apt-get update -y
- sudo apt-get install ansible -y
- sudo apt-get install openssh-client -y
- cd ./playbook
- chmod 600 ./ssh-keys/sw-iwamoto.pem
- ansible -i hosts/inventory.yml -m ping all
build:
commands:
- ansible-playbook -i hosts/inventory.yml ./setup.yml
post_build:
commands:
- echo "Now Finished Privisioning by Ansible"
弊社の様にメンバーが自由に端末を選べ、リモートワークなどを行う形態では、実行環境を統一するのもなかなか苦労します。
CodeCommit/CodePipeline/Codebuildを組み合わせることで、GitPushするだけで、Ansibleが実行できる環境がサーバレスで構築できます。
Ansibleを別のものに置き換え利用することもできます。
非常にニッチな利用ですが、何かの際にご活用ください。