人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

50台以上のUbuntuサーバを管理しています。サーバ事に用途は異なるのですが、たとえば「Apacheをインストールしているサーバのみ、一律で80番ポートを空けたい」というような単純だけど面倒な作業がよくあります。
特にサーバを増設した場合に設定の見直しが必要となり、アプリケーションを正常に動作させるまでに、とても大変な思いをしています。何か良い手法はないでしょうか?
自動化というか、各サーバ1台1台に手動でログインして設定を行うのではなく、一辺に且つ安全に設定する方法を探しています。

●質問者: gfs
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache Ubuntu アプリケーション インストール サーバ
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● ぐる
●20ポイント

ターミナルソフトのマクロは使えないでしょうか。

複数のマシンを対象にしたことはありませんが、私はTeraTermのマクロを使って、Win端末から処理を自動化したことがあります。

◎質問者からの返答

便利になるのであれば、マクロの記述方法を覚えるのも嫌ではないのですが、そのやり方だと例外処理を書くのがとても大変そうです。

あるサーバでは設定が成功し、あるサーバでは失敗するということが起きた場合、ログを確認しなおし、且つ手動で設定しなおさなければならない・・・これだと作業量が増える可能性が多く、また必ずしもエラーが出てくれるとも限りません。間違っているにも関わらず正常終了となった場合、それは設定ミスですし、最悪の場合、予期しない問題が発生し、しかも記憶にないという自体になるため恐ろしいです。


2 ● km1981
●10ポイント

SUSE Managerを使うといいと思います

http://www.novell.com/ja-jp/products/suse-manager/

◎質問者からの返答

商用サービスはちょっと手がでません。


3 ● hissssa
●50ポイント

定義ファイル系を一箇所で集中管理する運用はどうでしょうか。

どれか一台のマシンに定義ファイル置き場を作り、その下に各サーバ名のディレクトリを作って、その下に「管理操作する全てのファイル」をおいておきます。

で、設定を変える時はそこのファイルを書き換えたあと、スクリプトで一気に全サーバに配布するわけです。配布スクリプトはあらかじめ作っておいて。

Linuxなら大抵の設定は定義ファイルで行いますから、一元管理しておくだけでも相当手間は軽減されると思います。配布後、設定を反映する手順も定型化しておいてremshで実行すればいいですし。

そうやって一元管理の仕組みを作ってしまえば、その管理サーバ上でさらに工夫して、同種のサーバの設定を共通化するような仕組みに拡張していくことも可能でしょう。

◎質問者からの返答

確かにその通りなのですが、これを自作でやるのは例外処理が大変です。

SSH接続に失敗したときどうするのか、スクリプトの実行に失敗したときどうするのか、APサーバ等の停止に成功したが実はプロセスが残り続けているケースではどうすべきなのか、とか…。

最後のケース関してはどんなツールでも解決できない気がするので、何かしら運用で対処すべきでしょうが、きちんと管理されている(テストやデバッグが行われている)OSSなどのツールでないと厳しいのではないかと感じます。


4 ● エアル
●80ポイント

私もサーバ管理を片手間ですが手伝っています。

バージョン管理システムを使います(ここでは仮にsubversion)

サーバ側とクライアント側で設定する必要があります。

------

準備は下記

クライアント側:subversionのクライアントをインストール

subversionなどのリポジトリから変更ファイル(例:change.txt)と変更スクリプト(例:change.sh)を取得するようにセット

cronで定時点にchange.sh(仮)が実行するようにセット

------

サーバ側:

subversionをインストール(server機能を使用)

------

作業は下記

------

下準備はそこそこかかるが変更履歴も管理できてとても楽。変更が終わったら、変更スクリプトを空にしてコミットすればOK(これは忘れてないようにやること)。

また、変更内容をサーバに送るように変更結果ファイル(changeResult.txt)をshellに作らせ、結果をコミットすれば、サーバ側で結果を取得できます。

------

puppetなどのツールを入れることも検討したのですが、

そこまですることはなかったので、この方法を使っています。

puppet >> http://gihyo.jp/admin/serial/01/puppet

◎質問者からの返答

なるほど。実用的で堅実な運用方法だと思います。

Puppet や Chef も聞いたことはあるのですが、さてどうしたものかと悩んだまま進捗していません。


5 ● azumakuniyuki
●130ポイント

同じ構成のサーバ複数台に対して、同じ操作を行いたいという目的であれば、GNU Parallelが目的にあっているかもしれません。

http://blog.riywo.com/2011/04/19/022802 GNU Parallelがすごすぎて生きるのがつらい - As a Futurist... で詳しく説明されているので紹介します。

ただし、ご質問の内容がおそらくiptablesに対する変更ですので、作業内容によっては充分で慎重な検証が必要です。

◎質問者からの返答

GNU Parallelは初めて知りました。活用できそうですね。

iptabelsについては、Ubuntuにはそのフロントエンドとなる ufwコマンドがあるため、問題にはならないです。ありがとうございます。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ