`gitaddするまでGitOpsを実行できません`

2020年2月3日)

この記事では、初期環境と構成をGitに取り込む際のいくつかの課題をどのように解決したかを説明します。GitOpsの最初のステップです。

GitOpsを採用したいとずっと思っていましたが、常に注意が必要です。どこから始めればよいかを知るために。 Jenkins Jobsを使用していますか— Jenkinsをよく知っていますか?少し古い学校ですが、AnsibleTowerを使用する必要があるかもしれません。 ArgoCDや他の多くのことについて聞いたことがあります。実のところ、実際に環境と構成をGitに保存するまで、何もできません。

この記事の終わりまでに、開始するためのヒントをいくつかご紹介いただければ幸いです。

サーバー構成にGitを使用すると何が得られますか?

  1. すべての変更がログに記録されます&追跡されます。誰がそれを行ったか変化する?いつ?など。
  2. すべての変更はバージョン管理されています。 おっと、最新の変更で何かが壊れました。ロールバックが簡単です。
  3. 無料のバックアップ。 リポジトリを複数の場所に複製するだけです。
  4. 設定の再利用が簡単です。 新しいサーバーをインストールしたばかりで、一般的なApache構成の90%を使用したい。リポジトリのクローンを作成してファイルをコピーするだけです。

Gitリポジトリを作成します—プライベートですがアクセス可能です

私の意図は、dnsmasq、httpd、のすべての構成ファイルを保存することです。など、すべてGitで。構成はユーザー名やパスワードなど機密性が高いため、明らかにGitHubパブリックリポジトリは最善のアイデアではありません。プライベートリポジトリにお金を払っても構わないと思っているなら、それを選んでください。他のすべてのサーバーがリポジトリを取得できるように、パブリックインターネット上にある専用サーバーにリポジトリを作成することを選択しました。

cd /opt/ 
git init --bare ServerConfiguration.git

DNSベースのディレクトリ名—閲覧しやすい

構成の並べ替えと構造化を簡単にしたい。 ディレクトリにサーバーDNS名を使用することにしました。私はホームサーバーを使用していましたが、

git clone ssh://[email protected]/opt/ServerConfiguration.git
cd ServerConfiguration.git
mkdir -p example.com/server1/{httpd,dnsqmasq}

/optに保存するのはなぜですか?私は通常、このディレクトリをサーバーに保存されている特定のファイルに使用します。ほとんどの場合、/と同じファイルシステムであるという利点があり、ファイルのハードリンクが簡単になります。次のポイントに進みます。

サービス構成をGitリポジトリにハードリンクする

サーバーごと、またはサービスごとに個別のGitリポジトリを作成することもできますが、これはすぐに管理できなくなります。むしろ、環境全体のこの「ServerConfiguration」リポジトリは、さまざまなサービスの構成を簡単に保存できます。

では、Apache、dnsmasq、およびその他すべてのサービスでそれを使用するにはどうすればよいでしょうか。ハードリンクは行く方法です。構文はln

ln /opt/ServerConfiguration/example.com/server1/httpd.conf /etc/httpd/conf/httpd.conf

シンボリックリンクを使用しないのはなぜですか?さて、私はシンボリックリンクを使い始めましたが、dnsmasqのようなもののためのSELinuxポリシーは、期待されるディレクトリの外にある設定ファイルの使用について本当に不平を言っていることがわかりました。 SELinuxでは、2つの別々のハードリンクに2つの別々のSELinuxコンテキストを含めることができるようです。

共通のサービス構成へのシンボリックリンク

すべて同じ構成ファイルを共有するサーバーがたくさんあります。ここでは、相対シンボリックリンクを含むcommonディレクトリが適切に機能します。

cd /opt/ServerConfiguration 
mkdir -p example.com/common
cp /etc/httpd/conf/httpd.conf common/httpd.conf
ln -s "../common/httpd.conf" server1/httpd.conf
ln -s "../common/httpd.conf" server2/httpd.conf
...

コミット

一度構成ファイルをリンクしました。進行状況をgit addおよびgit commitすることを忘れないでください。

cd /opt/ServerConfiguration
git add -A
git commit "Made some changes..."
git push

構成を編集し、追加して、変更をコミットする習慣を身に付けます。これらの変更を定期的にオリジンサーバーにプッシュバックし、必要に応じてプル/更新します。感染性があることがわかりました。Git構成バージョン管理下にないサーバーを見つけたら、必要な構成をリポジトリに追加することをすばやく検討します。

これは、後でいくつかのより洗練されたGitOpsの基盤になります。ライン。しかし今のところ、このプロセスにはすでに多くの利点があります。

Gitを使い始めるためのチュートリアルを探している場合は、 GitBookを強くお勧めします。

ここからどこに行けますか?!

  1. ストアproductiontest、およびconfigurationを異なるブランチに配置し、それらをマージします。
  2. code reviewsの場合提出する人—変更諮問委員会が必要な人は誰ですか?!
  3. チェックイン時にその構成を自動的に適用するためのさまざまなオプションを調べてください— Jenkins Jobs、Ansible Tower、ArgoCDなど。

スプラッシュ解除 ヤンシーミンによる写真 / p>