Ansible Automation Platform(AAP)は、Ansibleを使いやすくするためのRedHatによるエンタープライズソリューションです。ソフトウェア開発ライフサイクル(SDLC)全体でプロセスを自動化するのに役立つ多くのコンポーネントがバンドルされています。ロールベースのアクセス制御(RBAC)、ワークフロー、APIを介したサードパーティの統合、通知、共有SSHキークレデンシャルなどのさまざまな機能を提供します。また、LDAPとうまく統合され、事前構成されたロギングが付属しています。
[次のこともお勧めします:GitOpsにAnsibleAutomationWebhookを使用する]
問題を理解する
プロセスは次のようになります。開発チームはコードを変更し、製品で使用されるGitリポジトリにコードをプッシュします。コードが更新されると、DevOpsチームは最新のコードをプルし、プレイブックを介して必要なサーバーにプッシュします。問題?最新のコードは毎回手動でダウンロードしてから、必要なサーバーにプッシュする必要があります。そのプロセスを自動化する方法を紹介します。
ソリューションを導入する
AAPは、GitHubおよびGitLabとの統合をサポートしています。この統合は、 webhookを使用して実現されます 。 Webhookは、コードの一部を更新してリポジトリにプッシュするなどのイベントによってトリガーされるユーザー定義のHTTPコールバックアクションです。この場合、トリガーされるアクションは、目的の管理対象ホストでのプレイブックの実行です。
上の図では、ユーザーが最新のコードをGitLabリポジトリにプッシュして、イベントをトリガーしています。イベントは、リポジトリにプッシュされるコードです。このイベントはさらに、APIを介してAAPと通信するHTTPベースのWebhookをトリガーします。これにより、選択したインベントリで目的のテンプレートを実行するようにAAPに通知されます。
GitLabを使用してAAPWebhookを構成します:
では、このプロセスはどのように機能しますか?わかりやすくするために、6つのステップに分けました。
ステップ1:GitLabパーソナルアクセストークンを作成する
ユーザー設定に移動します GitLabアカウントで、個人用アクセストークンを作成します。このクレデンシャルは、GitLabへのAPI接続を確立するために使用され、Webhookリスナージョブで使用してステータスの更新を投稿します。
ステップ2:GitLabパーソナルアクセストークンを構成する
タイプがGitLabPersonal Access Token のAAPで新しいクレデンシャルを作成します 。関連する名前と組織を入力してから、トークンを入力してください。
ステップ3:AAPテンプレートでWebhookを有効にする
AAPテンプレートに移動し、 Webhookを確認します ボタン。これには、GitLabであるWebhookサービスに入る必要があります。 Webhookクレデンシャルで以前に作成したクレデンシャルを選択します オプション。 Webhook URLをコピーします およびWebhookキー 与えられ、設定を保存します。
ステップ4:GitLabプロジェクトでWebhookを有効にする
Webhook設定に移動します GitLabプロジェクトの Webhook URLを入力します およびWebhookキー AAPテンプレートからコピーしました。 プッシュイベントを選択します 最新のコードがプッシュされたときにテンプレートを実行したいので、トリガーとして。 AAPに有効なSSL証明書がない場合は、SSL検証を無効にします。
ステップ5:コードに変更を加え、リポジトリにプッシュします
GitLabインターフェースまたはGitCLIを介してGitLabリポジトリに変更をプッシュします。
ステップ6:テンプレートの実行を確認する
ジョブに移動します AAPで。テンプレートは実行中か、正常に実行されている必要があります。 起動者に注目してください および追加の変数 分野。ユーザーはWebhookとして表示され、実行を正常に完了するためにWebhookによって使用される追加の変数が表示されます。
[システム自動化についてもっと知りたいですか? RedHatの無料の本であるTheAutomatedEnterpriseを始めましょう。 ]
まとめ
自動化は、組織のインフラストラクチャの管理において必要になっています。 Webhookなどのテクノロジーを使用すると、システム管理者は、Ansible AutomationPlatformなどのエンタープライズソリューションを介して、管理対象ホストに最新の変更を自動的に展開することが容易になります。