もふもふ技術部

【入門】Ansibleでパッケージの追加・削除、サービスの起動・停止


最近までChefで頑張っていたのですが、やはりサーバ数台で済むようなレベル小規模WEBアプリケーションではちょっと複雑すぎるなーと思って、同じ構成管理ツールでももっとシンプルに使えるらしいAnsible試してみることに。

確かにシンプルかな。SSHがつながればすぐ叩けるので最初のとっかかりはChefに比べると非常に楽な印象。

この辺りを参考にしました。

公式
http://docs.ansible.com/intro.html

Ansible Tutorial
http://yteraoka.github.io/ansible-tutorial/

インストールとセットアップ

Mac OSXなのでhomebrewが早いです。

ansibleでは対象サーバ郡をインベントリと言うっぽい。/etc/ansible/hostsというテキストファイルで管理するみたいなんだけど、手元の環境では読み込んでくれなかった。

なのでカレントディレクトリに作成した。

Vagrantのセットアップ

インストールなどは過去にもやっているので飛ばします。

カレントディレクトリにVagrantfileを作ります。

config.vm.boxは元々昔に作業してたboxがあったのでそれ使ってますが、各々の環境に合わせてください。Varantのboxの作り方等などは割愛します。

正しくupできることを確認したらexitして戻ります。

対象サーバにpingしてみます。vagrantのゲストOSにSSH出来ないため失敗します。

vagrantへsshコマンドで接続出来るように下記を追記。

再びpingしてみます。OKですね。

playbookを実行してみる

playbookはchefで言うレシピですね。構成管理情報をyml形式で記述します。

まずは手始めにapacheを入れてみます。その前にhostsのホストIPにグループをつけておきます。

apacheをyum installしてサービス起動するplaybookです。

playbookのシンタックスチェックをしてみる。

playbookのタスク一覧を出力してみる。どんなとき使うんだろう。

dry runも出来る。

いよいよ実行してみる。

ちゃんとapacheが動いてますね!

次はmysql-serverを入れてみます。先程のapacheと同じ要領ですね。

MySQLもOKですね!

サービスの停止・起動

こんどはサービスの停止と起動を確認します。MySQLにplaybookに手を入れてみましょう。
mysql-playbool.ymlのtasksをいじります。

tasksの公式リファレンス
http://docs.ansible.com/service_module.html
http://docs.ansible.com/list_of_all_modules.html

serviceのstateをstoppedに変更

起動したい場合はstateを元通りにrunningにすればいいですね。

パッケージのアンインストール

再び公式リファレンスを参照
http://docs.ansible.com/yum_module.html

yumのstateにabsentを指定すればアンインストールされる。

既にmysql-serverがインストールされている状態でtasksからyumを削除したらどうなるんだろう。

アンインストールされるわけではないみたい。

所感

今のところ非常に簡単だけど、この手のはちょっと凝ったことやるととたんに大変になる気がする。とはいえchefよりは楽だし向いてる気はした。次はもうちょっと実践的なところまでやってみたい。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。
Tagged on: ,