Ansible の GitHub アクション

Ansible No Github Akushon



Ansible は、構成管理、アプリのデプロイメントなどの DevOps タスクを自動化できる、人気のある無料のオープンソース自動化ツールです。

Ansible と GitHub Actions を組み合わせることで、メイン ブランチへのプッシュなど、リポジトリ内で特定のイベントが発生するたびに Ansible プレイブックの実行を自動化できます。







このチュートリアルでは、コードの変更に応じてデプロイメントを自動化するのに役立つ Ansible プレイブックを実行するように GitHub アクションを設定する方法を説明します。



前提条件:

続行する前に、次のものが揃っていることを確認してください。



  • GitHub アカウント
  • 既存の GitHub リポジトリ
  • Ansible プレイブックの基本的な知識
  • Ansible がタスクを実行できるターゲット マシン。 Ansible が GitHub ランナーからこれらのマシンに接続できることを確認します。

ステップ 1: Ansible 環境をセットアップする

Ansible プレイブックとすべての関連ファイルを作成し、GitHub リポジトリに保存します。これには、ロール テンプレート、変数などのファイルが含まれる必要があります。





プレイブックの例は次のとおりです。

---
- 名前: Nginx が Web サーバーにインストールされていることを確認します。
ホスト: ウェブサーバー
なる:はい
タスク:
- 名前: apt キャッシュの更新
適切:
アップデートキャッシュ: はい

- 名前: Nginx のインストール
適切:
名前: nginx
状態: 現在

Ansible のターゲット マシンを指定するインベントリ ファイルがあることを確認してください。



ステップ 2: GitHub リポジトリでシークレットをセットアップする

Playbook には SSH キーやパスワードなどの機密情報が必要であるため、GitHub はシークレットを安全に保存する方法を提供します。

GitHub リポジトリに移動します。

[設定] > [シークレットと変数] -> [アクション] -> [新しいリポジトリ シークレット] に移動します。

ステップ 3: GitHub アクション ワークフローを作成する

リポジトリ内に「.github/workflows」ディレクトリを作成します。このディレクトリ内に、ワークフローの YAML ファイルを作成します。

次のようにワークフローを追加します。

名前: Ansible プレイブックの実行
の上:
押す:
支店:
- マスター
仕事:
展開する:
実行: ubuntu-最新
手順:
- 名前: チェックアウト コード
使用: アクション/checkout@v2
- 名前: SSH キーの設定
実行: |
echo '${{ Secrets.SSH_PRIVATE_KEY }}' > private_key.pem
chmod 600 プライベートキー.pem
- 名前: Ansible プレイブックの実行
実行: |
sudo aptアップデート
sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ Secrets.REMOTE_USER }}

ステップ 4: ワークフローをトリガーする

master ブランチにプッシュするたびに、GitHub はこのワークフローを自動的に実行し、プレイブックを実行します。

結論

今回はこれで終わりです。 Github アクションを使用して Ansible プレイブックを実行する方法について説明しました。