LoginSignup
0
0

More than 1 year has passed since last update.

GitHub ActionsでAnsible lintを実行する

Last updated at Posted at 2022-12-07

こちらの記事はAnsible lint Advent Calendar 2022 8日目の記事になります。

今回は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の利用が必要な場合は再インストールする必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0