小さな協会のインフラストラクチャを実行するサーバーをセットアップしました。これまでのところ、Ansibleを使用して構成を管理しようとしましたが、それは大きな成功ではありませんでした。おそらく私たちはそれを間違っています。
原則として、このサーバーはほとんどの場合このサーバーはそのままにして、ブルームーンで一度追加または変更を行うという考え方です。システムを管理していない人は頻繁に概要を失うことになるため(詳細は覚えておいてください)、サーバー上で構成され実行されているものはすべて文書化され、明確であることが重要です。さらに、時間の経過とともに、このサーバーを管理する人々のグループの構成は変化します(人々が「委員会」を離れて参加するにつれて)。
クリーンインストールから始めて、何かを設定したいときはいつでも(nginx、phpfpm、postfix、firewall、sftp、muninなどの)ansibleにロールを追加しました。おそらく、私たちの経験の不足が原因で、設定が試行錯誤のプロセスであるため、一連のansibleタスクを必要な方法で正確に入力することはできません。つまり、実際には、通常、まずサーバーで実行する必要のあるサービスを構成し、次に、不可能なタスクに変換します。これがどこに向かっているかがわかります。人々はそれからタスクをテストすることを忘れるか、または物事を壊すリスクでそうすることを恐れるか、またはさらに悪いことです:私たちは物事をansibleに追加することを忘れるか、または無視します。
今日、ansible構成が実際にサーバーで構成されているものを反映しているという確信はほとんどありません。
現在、3つの主な問題が見られます。
- 物事を壊す危険を冒さずにansibleタスクをテストする(読む:良い方法がない)のは難しい。
- それは最初に望ましい構成を理解するために余分な作業を追加し、次にこれをansibleタスクに変換する方法を理解します。
- (理想的には)親しみやすさと日常を築くほど頻繁には使用しません。
ここでの重要な考慮事項は、私たちが最終的に何をしても、多くの練習をしなくても初心者が簡単にロープを学ぶことができるということです。
master
「物事を構成し、あなたがしたことを書き留める」が提供できないいくつかの保証とチェック(Ansibleファイルをいくつかにマージするのと同等)を提供する実行可能な代替策はありますか?
編集:/etc
gitへのコミットを検討しました。その方法でシークレット(秘密鍵など)を保護するための合理的な方法はありますが、それでもサーバーの外で構成リポジトリを使用できるようにしていますか?