このチャプターの目次
今回は GitHub Actions で Ansible lint を実行する方法を考察します。
Actionライブラリを利用する
GitHub Actions には Ansible コミュニティー公式の Ansible lint を実行するための Actionライブラリ があります。
ただし指定できるバラメーターがパス
のみで非常に扱いにくくなっています。
.github/workflows/build.yml
name: Ansible Lint
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ansible-lint
uses: ansible-community/ansible-lint-action@v6
with:
path: "playbooks/"
シェルスクリプトで実行する
公式の Actionライブラリ の採用は難しいのでシェルスクリプトで対応します。Galaxy Role
のインストール部分は適宜変更します。
.github/workflows/build.yml
name: Ansible Lint
on: [push, pull_request]
jobs:
ansible-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3'
- name: Install Ansible and ansible-lint
run: |
pip install ansible ansible-lint
- name: Install galaxy roles
run: |
if [ -f 'roles/requirements.yml' ]; then
ansible-galaxy install -r roles/requirements.yml
else
ansible-galaxy install git+https://github.com/${{ github.repository }},${{ github.sha }}
fi
- name: Execulte ansible-lint
run: |
ansible-lint
- name: Show ansible-lint version
run: |
ansible-lint --version
ansible-community --version
その他
GitHub Actions では Action 実行に起動される VM に Ansible が初期インストールされています。もし初期インストールされているバージョン以外の Ansible の利用が必要な場合は再インストールする必要があります。