私の仕事では、複数のSSHホップを介してクライアントPCのCentosコンパイルソフトウェアバージョンを頻繁に更新する必要があります。最近は手動で管理できないレベルに達しました。このプロセスを自動化するにはどのソフトウェアを使用できますか?
私にとって必要なのは、更新されたファイルを受け取り、scp / sshを介して転送し、リモートホストで自動的に解凍/交換スクリプトを実行できることです。そのようなソフトウェアはありますか?それとも単純なbashスクリプトで書くことはできますか?
理想的には、私のコンピュータで「helperappnameホスト名パッケージファイル」を作成し、ヘルパーアプリケーションに展開を実行させることです。またはそのようなもの。
答え1
すべてのターゲットコンピュータがCentOSの場合は、アプリケーションをRPMにバンドルすることをお勧めします。これを行うと、最新バージョンを自動的に簡単にバンドルでき、展開はすべてのターゲットサーバーにアクセスできるリポジトリを設定し(難しい場合があります)、「yum update」または「yum install」を実行するのと同じくらい簡単ですになります。ソフトウェアを更新/インストールしたい各クライアントでコマンドを実行すると、時間の投資は少し大きくなりますが(速く学ぶと約1〜2週間程度)、報酬を受けることができます。インストール時間を30秒未満に短縮すると、膨大なものになります。各ターゲットマシンで。
答え2
これは、これらのタスクに使用できる非常に密集したツール領域です。前述のように、基本的に単純なシェルスクリプトを使用して、cfengineやpuppetなどの構成管理ツールを使用して独自のものを構築できます。
私は簡単に始めて独自のシェルスクリプトを作成し、それを実行するために専用システムの1つにアップグレードする傾向があります。
これにより、Puppetなどの設定を放棄する前に要件をよく理解できます。
Wikipediaにはこれらのツールの良いリストがあります。オープンソース構成管理ソフトウェアの比較。
これらは私が過去に使用していたツールであり、うまくいきましたが、設定して実行するにはさまざまな程度の困難がありました。
上記の中で、私はほとんどを試してみましたが、Capistranoおよび/またはChefがおそらく始めるのに良いと言うことができます。しかし、前述したように、まずシェルスクリプトアプローチを使用してから、長期的な解決策の1つを見てみましょう。
軽量のオプション
上記のオプションがまだ重すぎる場合は、次のツールもあります。回転速度。本質的にはPythonのフロントエンドですが、rsync
テキストファイルssh
に設定されている一連のサーバーで作業できます。myrpm
次のコマンドが提供されます。
- 場所キー
- 配布キー
- 品質同期
- バッチSSHリモート実行
- バッチSSHリモートcmd
これにより、ssh
個々のホストにキーをプッシュしたり、ファイルをプッシュしたり、サーバーへのリモートコマンドを開始したり、ワンタイムコマンドを起動したりできますyum -y update
。