AWS Systems Managerを使えば、設定ファイルもいい感じにGitで管理できるというのは記事にしましたが、ここでポイントとなってくるAWS-ApplyAnsiblePlaybooksが、CentOS7やRockyLinuxに対応していません。どうすればよいのか、調べました。
![Git Cloneせずに管理された設定ファイルをdeployする](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjckYymKRhAf5Oxoi4pzFVWAJyYWPGMyDqaHsVwacbblbbQeUkmA9mGw5ukXknafrKkocBYv9smrBpEyNB-WnyRMZ37Y1ZSwS6X5LjEXfbSoBOxzn0vpc09X3zEprYwFRq9rHNb5EyaR1qdGVfSZu7p9L58b8tqwjt_bQNbSB4X60pZMNsTiA/w1200-h630-p-k-no-nu/check-list.jpg)
Git Cloneせずに管理された設定ファイルをdeployする
スマホやMacなどの話から、プログラミング、あるいはアフィリエイトなど、IT系のブログです。
AWS-ApplyAnsiblePlaybooksがやること
AWSにログインしないと見れませんが、AWS-ApplyAnsiblePlaybooksはscriptです。プレイブックの実行オプションに"Install Dependencies"というものがあり、これをTrueにすると、playbookの実行に必要なプログラムをインストールします。
どうやってインストールするのか読んでみたところ、PyPI repoから入れるようです。ということは、CentOSでもRockyLinuxでも、PyPI repoから必要なものを入れておけば、AWS-ApplyAnsiblePlaybooksを動かせるようになります。
![](https://pypi.org/static/images/twitter.abaf4b19.webp)
Python Package Index(PyPI)は、プログラミング言語Python用のソフトウェアのリポジトリです。
パッケージ管理はyumにまとめたい
PyPI repoから入れると言うことは、pipでパッケージを管理するということです。CentOSのパッケージ管理はyum(rpm)なので、パッケージ管理システムを2種類使うことになります。モノによっては二重管理となり、アップデートなど面倒な話になってきます。
AWS-ApplyAnsiblePlaybooksの実行に必要なコマンドは、ansible-python3 unzip wgetです。が、ansibleのプレイブックを実行するコマンドがansible-playbook-3になります。AWS-ApplyAnsiblePlaybooksはansible-playbookというコマンドを想定して作られているので、調整が必要です。
CentOS用のAWS-ApplyAnsiblePlaybooksを作った
ansible-playbook-3からansible-playbookにリンクを張ってもよかったのですが、そういった小細工をちゃんと管理していくのは難しいのと、パッケージ管理が二重になるのは面倒なことになりそうなので、CentOS用のAWS-ApplyAnsiblePlaybooksを作りました。といっても、コピーしてコマンドをansible-playbook-3に直しただけですが。
これだけだと"Install Dependencies"が動かないですが、事前に必要なパッケージを入れておけばよいだけです。作ったCentOS用のAWS-ApplyAnsiblePlaybooksはSSMのドキュメントとしてAWSで管理されるので、大した手間にはならないでしょう。
設定ファイルもGit管理
これで、CentOSでも設定ファイルをGit管理できるようになりました。設定ファイルの更新もSSMで行えるので、いちいち対象のサーバにログインする必要もありません。SSMでのプレイブックの実行はawsコマンドでも行えるので、GitOpsでやれることが広がります。