Githubアクションを使用した
Githubアクションを使用した
「GitHubアクションを使用して、リポジトリ内のソフトウェア開発ワークフローを自動化、カスタマイズ、実行します.」Githubアクションドキュメントページの紹介です.どのように、これは不可解に関連しますか?Ansibleはコードです、そして、そのため、Gitイベントに基づいてそれを展開するワークフローを構築できます.リポジトリにプッシュまたはプル要求など.
アクションを作成する
Githubアクションは、ジョブを作成し、ワークフローをカスタマイズするために結合する個々のタスクです.を使うDocker container Action , あなたがプッシュ要求をプッシュまたはマージたびに実行可能に実行する独自の作成されます.
アクションディレクトリを作成します.
mkdir .github/actions/ansible
新規作成Dockerfile
.FROM <DockerHub-UserName>/ansible-in-containers
COPY ./entrypoint.sh /entrypoint.sh
ENTRYPOINT ["bash","/entrypoint.sh"]
コピーするentrypoint.sh
アクション・ディレクトリへのスクリプト.#BASH
Copy entrypoint.sh .github/actions/ansible
#POWERSHELL
Copy-Item entrypoint.sh .github/actions/ansible
クリエイトaction.yml
新しいディレクトリで.name: 'Ansible'
description: 'Runs an Ansible playbook'
inputs:
playbook:
description: 'Ansible playbook to run'
required: true
default: playbook.yml
inventory:
description: 'Ansible inventory to use'
required: true
default: localhost
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.playbook }}
- ${{ inputs.inventory }}
名前と説明は、アクションが何であるか、そして、それが何をするかに文脈を与えます.入力はDockerコンテナーアクションで使用されるパラメーターを定義します.PlayBookとInventoryは、このアクションの入力を必要とします.なぜなら、エントリポイント引数が空になっているからですansible-command
は失敗します.各入力もデフォルト値を持っています.魔法が起こる実行セクションの中で.Dockerに使用する設定は、dockerコンテナアクションとしてアクションタイプを指定するものです.イメージをDockerFileに設定すると、アクションによって使用されるコンテナをビルドするには、アクションディレクトリにDockerFileローカルを使用するように指示します.そして、イメージが造られたあと、argsは通過されます、そして、アクションはコンテナを走らせます.
ワークフローを作成する
ワークフローは、ビルド、テスト、およびリリースを調整するカスタム自動化されたプロセスです.ワークフローを使用して、すべての可用性ファイルをリントし、その後、実行可能なDockerコンテナアクションを実行します.
クリエイト
workflow
ディレクトリmkdir .github/workflows
クリエイトdeploy_ansible.yml
ワークフローファイル.name: deploy ansible
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout repo
uses: actions/checkout@v2
- name: Lint Ansible Playbook
uses: ansible/ansible-lint-action@master
with:
targets: ""
deployAnsible:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: ./.github/actions/ansible
with:
playbook: playbook.yml
inventory: localhost
上記の操作によって、生成可能なワークフローが生成されます.これは、リポジトリのマスターブランチに行われたプッシュまたはプル要求があるときにのみ起動されます.一度ワークフローが2つの仕事をキックオフされます.第一にbuild
ジョブラン.ビルドは、実行可能なlintコマンドラインユーティリティをすべて実行するansible lintと呼ばれる公共のgithubアクションを実行します.あるいは、あなたの倉庫のYAMLファイル.実現可能なlintが成功するなら、2番目の仕事は引き起こされます.扱いにくいDockerコンテナアクションの実行deployAnsible
コンテナに引数として与えられた値を使用します.次にコンテナはansible-playbook
引数with
リスト.つだけのことは、あなたの変更を押してください.Githubは、中でファイルを見つけます...Githubディレクトリに基づいて動作とワークフローを作成します.対応するディレクトリのYMLドキュメント.それを1分または2分、次にあなたのリポジトリGitHub.com , アクションタブの下のアクションの結果を確認します.
結論
これで、Dockerコンテナの中で、どのようにビルドを実行し、実行し、展開できるかを学びました.コンテナはもはや開発者のみアプリケーションを実行するために使用されます.また、どのようにsysadminsは、技術者をdeved、およびsresのコードとしてインフラストラクチャを展開します.コンテナを自分で使用すると、利点を最初に手が表示されます.コンテナは、あなたのチームのための一貫した開発の経験を提供し、パイプライン、リリース可能な環境のバージョンイメージ、増加した移植性、および柔軟性.コンテナは、Webアプリケーションだけでなく、インフラストラクチャの未来です.あなたがそれらについて学ぶ必要があるまで待機しないでください、今日開始、今開始します.
完全なブログ記事を読んでください."Using Ansible in Containers" on duffney.io
Reference
この問題について(Githubアクションを使用した), 我々は、より多くの情報をここで見つけました
https://dev.to/joshduffney/deploy-ansible-with-github-actions-2f3d
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Githubアクションを使用した), 我々は、より多くの情報をここで見つけました https://dev.to/joshduffney/deploy-ansible-with-github-actions-2f3dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol