こんにちは、ハブロフスク!
sh(bash)を使用してFreeBSDのインストールと設定を自動化した経験を共有したいと思います。 次のようなものでした。
入社後は、FreeBSDで複数のサーバーを上げる必要がありました。 2つ目と3つ目の軸に続いて、私の同僚(州内にIT専門家は2人しかいない)は、新しくインストールしたOSを構成するスクリプトを記述してこのプロセスを自動化することを考えました。 執筆の仕事は私の肩にかかった。 同僚が自動インストールの問題を取り上げました。これについては別の投稿で説明します。 それでは始めましょう!
すぐに説明します。スクリプトは自分専用に作成されたため、一部のコードは適切に設計されていないか、単に「完璧ではありません」。 しかし、それでも、それは機能します!
このスクリプトは、ローダーファイル、メインの実行可能ファイル、ライブラリファイルの3つのファイルで構成されています。 順番に始めましょう。
loader.sh
parser.sh
そして、実際には、関数:
parserlib.sh
FTPサーバーで、次の設定でアーカイブを作成するスクリプトが実行されます。
アーカイブには、
list.txtにリストされているサブディレクトリにあるすべてのファイルが含まれます。 ファイルには、バージョン番号に対応する親ディレクトリの名前が1行に1つずつ含まれています。
アーカイブを解凍した後、スクリプトはマージおよび置換ブランチをチェックします。 1つ目は、構成ファイルでパラメーターが追加または置換され、必要に応じて行がコメント化またはコメント解除されます。 2番目については、通常のファイル置換が行われます。 変更されたファイルごとに、そのMD5は
$ DataDirectory $ LockFileリストに保存されます。スクリプトを繰り返し実行した場合、不適切なMD5のファイルは変更されません。 これは、管理者が行った手動変更のロールバックを防ぐために行われました。
また、スクリプトの誤った変更を防ぐために、作成されたrun.shファイルを介して再起動機能が作成され、スクリプトが再起動されて削除されます。 原則として、この機能は簡単にカットできます。
スクリプトは、次のキーを(任意の順序で)受け入れます。
-fアーカイブの再利用のチェックをスキップします
-sは、スクリプトの再起動をスキップします
-dはロックファイルを削除します。 手動の変更をロールバックする必要がある
-v VER FreeBSDの強制バージョン
他のキーは使用関数を呼び出し、スクリプトは終了します。
アーカイブ内のサブディレクトリを処理するための独自のオプションを追加することもできます。 これを行うには、対応するコメントの下のelifブランチにあるparser.shファイルでそれらを記述する必要があります。
私のアーカイブの構造は次のとおりです。
マージ/ブート/loader.conf
/etc/rc.confをマージします
/ usr / local / etcを置き換えます
/ usr / local / etc / svnup.confを置き換えます
/ usr / share / skelを置き換えます
置換/ usr / share / skel / dot.cshrc
/etc/ntp.confを置き換えます
/etc/adduser.confを置き換えます
/etc/portsnap.confを置き換えます
/ root / .cshrcを置き換えます
ディレクトリ名の後に(マージと置換がある)、ファイルへの元のパスが保存されます。 ディレクトリの名前と削除される前のすべてのものは、対応するifブランチのコードによってファイルが処理されます。
スクリプトは、ネイティブ関数のみを使用して記述されています。 新しくインストールされたフレンチで動作します。
開始するには、loader.shファイルを取得し、実行権限(chmod + x loared.sh)を付与して、もちろん実行する必要があります。
私は建設的な批判、コメント、提案に喜んでいます。 ソリューションが完璧ではないことを完全に理解しており、それを改善させていただきます。
PS:金曜日の未完成の投稿について本当におaび申し上げます。 誤ってコピーを発行し、これに気付かなかった。