57
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ansibleの基礎

Posted at

##CentOS6での利用方法

CentOS(ホスト) -> CentOS(リモート側)

##予備知識
AnsibleはSSHでリモート側にログインしてコマンド類を叩く設計になっています。
そのため、リモート側でSSHログインができるようにしておきましょう。
(念のため、ログインするユーザと、コマンドを実行するユーザを別にすることも可能です)

インストール

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum install ansible -y

実行確認

アクセス先のホストは192.168.1.20、アクセスユーザはrasennとします。
鍵認証でアクセスするなら(パスワードなしsshができれば)--ask-pass --ask-sudo-passは必要なく、パスワードも要求されません。
(マニュアル見ると-kで2つの代用できるように書いてありますが、sudoが必要な場合にはできませんでした。)

echo 192.168.1.20 > hosts

ansible 192.168.1.19 -i hosts  -m ping -u rasenn --ask-pass --ask-sudo-pass
SSH password: 
192.168.1.20 | success >> {
    "changed": false, 
    "ping": "pong"
}

コマンドの内容としては、下記のとおりです。
ansible ホスト -i ホストリストファイル -m 実行モジュール -u ユーザ

playbookを利用した実行

playbookを利用した実行には2つのファイルが必要になります。

  • ホストファイル
  • playbookファイル

ホストファイル書き方

リモート側のホスト名を記載します。グループ単位で記載が可能です。
下記の例では「gluster-servers」と「hadoop-servers」の2つのグループを記載しています。

[gluster-servers]
192.168.1.20
192.168.1.21
192.168.1.22

[hadoop-servers]
192.168.1.30
192.168.1.31
192.168.1.32

playbookの書き方

yaml形式でかけます。最初のhostsはhostsファイルで記載したどのグループを対象にするかを記載しています。
後はだいたいわかると思うので省略。

playbookファイル

simple-playbook.yml
- hosts: gluster-servers
  sudo: yes
  tasks:
    - name: be sure glusterfs-fuse is installed
      yum: name=glusterfs-fuse state=installed

    - name: be sure glusterfs is installed
      yum: name=glusterfs state=installed

    - name: be sure httpd is runnning and enabled
      service: name=httpd state=running enabled=yes

実行コマンド

実行は下記の通り行います。
他にもいろいろオプションはありますが、シンプルに行って下記の感じです。

ansible-playbook simple-playbook.yml -i hosts  -u rasenn --ask-pass --ask-sudo-pass

上記のコマンドでhosts内に書かれたgluster-serversにのサーバにyumで色々入ります

簡単な補足をするとiオプションは読み込むhostsファイルを指定し、-uはユーザを指定します。--ask-passはsshログインのパスワードをキーボード入力する、--ask-sudo-passはsudoパスワードをキーボド入力する、という指定になります。

パスワード無しSSHログインが可能な場合は--ask-passは不要ですが、立ち上げて壊すVMにいちいち鍵なしログイン設定をするのが面倒なので、2つをつけました

とりあえず、基本はこんなところでしょうか?
playbookの書き方を覚えると色々便利な気がします。
面倒なのでとりあえずここまでで。

(しかしchefと比べて気軽だなおい。。。)

[参照]
http://devopsu.com/guides/ansible-centos-fedora.html

57
56
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
57
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?