はじめに
ansibleをリポジトリで管理してる時に、チーム内で挙動を合わせる為の対応メモ
考慮した事
- ansibleの実行バージョンがメンバーのローカル環境のバージョンに左右されないようにする
- 内製のroleとAnsible Galaxyのrole両方を使って運用してるので、ansible Galaxyのrole取得を容易にする
対応
pipenvで実行環境を合わせる
Pipfile
をリポジトリに取り込んで実行環境を合わせる
Ansible Galaxyからのroleを一括で取得
- 取得するロールのリストファイル(
requirements.yml
)を作成 - 作業前にコマンドで一括で取得する
構成ファイル
リポジトリ直下で以下のファイル構成を想定
Pipfile requirements.yml roles/
./Pipfile
[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] ansible = "==2.7.9" [dev-packages] [requires] python_version = "3.6"
./requirements.yml
# Datadog # https://galaxy.ansible.com/DataDog/datadog - src: Datadog.datadog
作業手順
- 実行する仮想環境を作成
# Pipfileに指定したansibleバージョンをインストールした仮想環境作成 pipenv install # 作成した環境にログイン pipenv shell
- Ansible Galaxyからのroleを一括で取得
ansible-galaxy install -p ./roles -r requirements.yml