[Server] 管理ツール「Ansible」を覚えてみる #1「インストールと初期設定」

2015年5月1日

Ansible サーバー 特集

仕事でサーバーを管理する場合、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にセットして行うのもかなりいい準備なので、オススメします。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。