
ディストリビューションを新しくインストールするのに時間がかかる可能性があることは誰でも知っているという事実です。すべてのドットファイルを持っていても、さまざまなパッケージやアプリケーションを手動でインストールして設定するのに時間がかかることがあります。最近、このプロセスを自動化するためのツール/ベストプラクティスがあるかどうか疑問に思います。汎用ツールはありますか?それとも、通常のシェルスクリプト(他のディストリビューション/ハードウェア構成用)で十分ですか?
これはリンクですこのトピックに関する追加情報。作成者のインストール後、シェルスクリプトには約2000行のコードが含まれています。
答え1
いくつかの方法があります:
RHELの場合:anaconda(?)インストール定義から別のパッケージを選択します。
debian: deb-installer に必要なパッケージを追加させます。
いくつかの種類の構成管理:
- CFエンジン
- アンシプール
- 人形
Solarisの場合、コンピュータが初めて起動するときにネットワーク経由で起動するように強制するインストーラデーモンがあり、そのネットワーク起動インストールではローカルディスクに展開して再起動します。
後でマシンを変更する必要がある場合(サーバーではなくワークステーションネットワークを考えてみてください)、インストールサーバーを変更してマシンをネットワーク起動するように強制します。
答え2
私は通常私のスクリプトも使用します。もちろん、curl <my-installer> | bash
Linuxユーザー数と同じくらい便利なプロジェクト、スクリプト、さらには単純なシェル機能もたくさんあります。
いいねクラウド初期化その多くは、おそらく次回の高速サーバー/開発者設定に使用されます。 Ansibleet al。コミュニティまたは個人/会社のモジュラーシステム構成設定を再利用するのに役立ちます。しかし、興味があれば、単純な「cloud-init」スクリプトもその効果を発揮します。 [cloud-initがインポートするWebコンテンツの検証をサポートしているかどうか疑問に思います。これが私が最初に考慮します] 。
「プロジェクト」としては多少未熟ですが(他の人のスクリプトに気を付けるには自信を持って経験豊富なシェルユーザーが必要です)、私の「apt-get.list」は次のように進化しました。https://github.com/dotmpe/user-conf。インストールスクリプトLoCの仕上げに多くの時間を費やしました。特定のVM/コンテナ/「仮想アプリケーション」システムに時間がかかりすぎない場合(またはVagrantのようにそれらができることを理解してください)、自動化されたシェルと最小限の手動コピーでこれを行うことができます。アクション - 貼り付け/ssh-copy-id/scp/adduser/usermod/etc。スピード。
結論:これらすべてにはオプションを持ついくつかの構造が必要です。おそらくドットファイルのリポジトリやサーバーであるかもしれませんが、キーやトークン、ネットワーキングに関するいくつかのアイデアも必要かもしれませんし、他のユーザーだけでなくコンポーネントの表示/抽象化にも興味が必要です。私はまだcURL / GIT / Bashをたくさん使っていますが、cloud-initはこれを非常にうまくやっています。 Ansibleモジュール/役割も調査していますが、重要なことは、どの構成システム設定を好むかを確認する必要があることです。プロキシやSSHなど。