仕事でサーバーを管理する場合、1台や2台を管理しているだけならいいのですが、10台を超える場合に、いちいちsshでログインして各サーバーの設定を行っているような効率の悪い仕事をしていたら、とてもじゃないけど効率が悪いと言われても仕方がありません。
サーバー管理には、便利な管理ツールがたくさんあるようなので、その中で「Ansible」をチョイスしてみたので、備忘録と便利な使い方案などをメモしておきます。
ちなみにここで言っている「管理ツール」とは「複数サーバーの管理ツール」という事なのでpleskやwebminなどとは違うことを認識ください。
サーバー管理ソフトはたくさん存在する
1.Pappet
2.Chef
3.Salt
4.Ansible
性能の比較表が以下のサイトにあるので、見て欲しい。
http://demand-side-science.jp/blog/2014/ansible-in-wonderland-01/
どのツールもメリット、デメリットがあり、非常に悩みどころですが、僕は、ansibleの「エージェントへのインストール:無し」という点に注目して、どんどん膨らむサーバーリソースの管理において、クライアントであるエージェントのソフトインストールが無いという点は、運用管理においてとてもメリットがあると感じたのでansibleを採用しました。
環境構築
手元のPCがMac環境なので、とりあえずは、管理サーバーを構築するのではなく、MacにAnsibleをインストールして、エージェントサーバーの管理を行ってみたいと思います。
インストール
# Mac
$ brew install ansible
# Debian/Ubuntu
$ sudo apt-get -y install ansible
# CentOS
$ sudo yum -y instakk ansible
設定
任意フォルダにhostファイル(サーバー一覧リスト)を作ってアクセスして、コマンドを実行してみたいと思います。
ちなみに、hostファイルの名前は何でもいいです。
server.host
#実際の管理するサーバーのアクセスアドレスを登録してください。
[local]
localhost
[main]
hoge.com
[sub]
huga.com
秘密鍵セット
ansibleの仕組みは、sshで対象サーバーにアクセスして、コマンドを打ち込んでいるだけのようなので、実はsshコマンドで大体できてしまいます。
でも、便利なモジュール群や、管理するサーバーリストを保持できる点で、メリットはありますので、安心ください。
ただ、エージェントサーバーの設定が全くいらないわけではなく、sshを秘密鍵でパスワード無しでログインできる状態にはしておかないとおけません。
サーバー管理者であれば、使用端末はその状態になっていてもおかしくないのですが、上記サーバーリストに対してログインアクセスの確認をしておきましょう。
起動テスト
全サーバーのhostnameを取得してみる
$ ansible all -i server.host -m shell -a "hostname"
サーバー毎にsuccessが返ってくれば問題なしです。
FAILEDが返ってくる場合は、sshアクセスに問題があります。
設定を確認してください。
準備完了
ここでエラーがなくなれば設定が完了です。
便利に使える状態になりましたので、あとは、どういう管理をするかの計画を立てて、実行するだけです。
ただ、サーバーの一元管理と言っても、超便利ツールではないので、もしもの時のリカバリーをできるように準備する事を怠らないようにしましょう。
管理する上でコマンドを叩く前の確認として、VagrantをローカルPCにセットして行うのもかなりいい準備なので、オススメします。
0 件のコメント:
コメントを投稿