内部ITインフラストラクチャに加えて、オンライン世界向けのサービスをホストしている約500台のLinuxマシンがあります。これらは、データベースA-n、製品A-n、NFS、バックオフィスなどの一連のクラスターにグループ化されます。さらに、仕様と要件に従って、外部プロバイダーによって管理されます。
ただし、(Web)ソフトウェアの開発、展開、および展開中に多くの問題に直面します。特に、開発環境とステージング環境には、ライブシステムとの共通点がほとんどないためです(厄介な詳細は割愛します)。 。
したがって、私は仮想マシンを作成し、さまざまなライブシステムを可能な限り正確にコピーして、たとえばに接続できるように準備しました。開発者にとって透過的に「実際の」データベースではなく、開発データベース(root
ではありません) )。これはかなりうまく機能しますが…
これらのシステムをリモートで一括して管理するにはどうすればよいのでしょうか。 ?知らないソフトウェアファミリはありますか?または、少なくとも、知っておくべきいくつかのテクニックや原則はありますか?
すべての開発者に、ローカルで実行する一連のイメージ(VirtualBox)を提供します。 QA部門仮想クラスター(XENまたはHyper-V)を取得します。追加のサーバーモジュールを提供する必要がある場合、新しいデータベース接続を再ルーティングする必要がある場合、またはパッケージマネージャーによって提供されるすべてを更新したい場合は、すべてのシステムにログオンしたり、同僚がフィクスチャスクリプトをダウンロードして実行しますか?
解決策はたくさんあると思います。どういうわけか、私は愚かすぎて検索エンジンに正しいキーワードを入力できません…それとも、この問題は思ったほど些細なことではありませんか?
記録のために:
- ほとんどすべてのシステムがDebianGNU/Linux6.xの「スクイーズ」を実行しています
- 開発者が自分のワークステーションで特定のOSを使用することを強制されることはありません
- もちろん予算は限られていますが、プロプライエタリソフトウェアを購入するには少なすぎません
- 前述のプロバイダーが関与するソリューションが推奨されます
承認された回答:
それはあなたが正確に何を必要とし、何を探しているかによります。ただし、一般に、「次のような構成管理」には複数のソリューションがあります。
- 人形
- シェフ
- cfengine
- ansible
- 塩
個人的には、大きなコミュニティと外部から提供されたレシピがたくさんある人形をお勧めします。これにより、システムを自動的に構成および管理できます。これを独自のリポジトリおよび自動更新と組み合わせる場合、たとえば、 unattended-upgrades
システムを自動的に更新できます。
もう1つの解決策は、company-base
のような独自のパッケージを提供することです。 必要なソフトウェアに自動的に依存し、システムを自動的に構成できるなど。
また、自動化された展開(ベアボーンおよび仮想化)も検討する必要があります。これを構成管理または独自のリポジトリと組み合わせると、システムを簡単に自動化して再インストールできます。自動インストールを開始したい場合は、libvirtとベアボーンインストールをサポートし、パペットサポートを統合したformanをご覧ください。自分でやりたい場合は、キックスタート(redhat et。al。)または「プレシード」を調べて、システムを自動的に構成できます。 Debianの場合、debootstrapや仮想化イメージをサポートするgrml-debootstrapという名前のラッパーのようなものを使用することもできます。
関連:Linux –ReaverはKaliLinuxで同じピンを繰り返し続けますか?開発者にVirtualBoxイメージを提供するために、vagrantを見てください。これにより、仮想環境をカスタマイズするためのシェフ、パペット、シェルスクリプトをサポートするVirtualBoxを使用して仮想化システムの作成を自動化できます。
既存のプロバイダーによるソリューションを使用する場合は、プロバイダーがシステムをどのように管理しているかを尋ねる必要がありますが、おそらく何らかの構成管理になります。構成サーバーにアクセスできる場合は、システムでエージェントを実行できる可能性があります。
Googleのキーワードについては、devops
を調べてください。 、configuration management
、it automation
およびserver orchestration
。
要するに、可能な限り自動化し、手動で行うことさえ考えないでください。