MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


Ansible AWXとGitlabで構成管理~
profile-img
投稿者: s.yamashit...さん
投稿日:2024/03/27 10:48
更新日:
like-img
分類
技術
テクノロジー
Unix系サーバ
キャリア
構築 / 設計
投稿内容

表題の通り、Ansible AWXとGitlab(or Github)を使って構成管理をしてみよーって話を軽く書きます。


構成管理とは、以下のことを指します。

例えば、ネットワーク機器やサーバーの構築/設定変更やサーバー機器のミドルウェア~アプリケーションレベルの構築、

構成の状態の確認等、これらを自動でできます。

※イメージ:Ansibleで対象の機器に対するPlaybookを流すだけ


ここでそれぞれの役割を見てみます。

●Ansible

Jobを実行するサーバ。Jobで実行する内容をPlaybookに記載する。

Playbookのイメージは、やることリストを記載しています。

皆さんが手順書を作成してそれ通り作業をするのと同じで、

Playbookというものに「ネットワークのルーティングを追加して~変更して~」「nginxのバージョンxxをインストールして」的なことを書きます。

またその実行対象を明記したり、機器のパスワードに関する設定、Playbookの実行ログなどを記載しています。

その際に機器の情報が入ったパラメータも使用します。

言語はyamlと呼ばれる、人が読みやすい言語で記述されています。

簡単な英単語が分かれば、プログラミングなんてやったことないよ!!!って人でもとっつきやすいかもです。

※PlaybookやパラメータはGitlab(or Github)に格納します。

どうやってそれらの情報を取得するのか?

一般的にはGit Clone(公開/暗号鍵認証、http認証)で取得するのかなと思います。

※Git Cloneはリポジトリの複製


●Gitlab(or Github)

機器のパラメータ情報をGitlab(or Github)やPlaybookそのものも格納したりするリポジトリサーバの役割です。

機器のパラメータってテキストやExcelで管理しているところが多いかと思いますが、それらをGitlab(or Github)とかで管理します。

言い換えるとそこにあるパラメータが完全に正である必要があります。

これらのパラメータもAnsibleとの組み合わせであればYAML等で記載すれば良いかなと思います。

ただしGitに関する知識が必要なので、割とここはネックかもです。

Ansibleより、Gitの方が理解するのに時間を要するかなと・・・(個人的に)



かなり概要レベルで書きましたが、構成管理をすることで以下のメリットがあるかなと。。。

・作業手順書がいらない!!!(個人的にすごくありがたい・・・)

・手作業によるミスが極めて少なくなる!!!

・作業時間の圧倒的な短縮

・どのパラメータが一番が正しいのか明確

※Playbook実行後、最新のパラメータをGitlab(or GitHub)に自動でpushすれば間違いなく・・・

・yamlが分かれば、ある程度の構築/設定等の操作ができる


デメリットは以下ですかね。。。

・それでもやっぱりyamlが読めるまでには多少の時間がかかる

※チームでするとならば、全員が理解している必要があり、そのしきいをクリアできるかが課題・・・

・Gitの知識がとても大事

※Gitは慣れるまでは難しいです。コマンドたくさんあるし、概念も難しいかなと。。。


【結論】:Gitの有識者とAnsibleの仕組みさえ分かる人がいれば、実装可能かと思われます。

※ただしチーム全員が理解するための最初のハードルは高い。


コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3