Ansibleモジュール

get_url:

wget コマンドみたいに

ダウンロードができるモジュール

url=

にはダウンロード先のurlを指定

dest=

には保存先のパスを指定

次に

unarchiveモジュール

これは tar コマンドみたいに

ファイルを展開するもの

–  name:  rubyの展開

   unarchive: 

     src=/tmp/ruby.tar.gz

     dest=/tmp

     copy=no

というように

src= には

展開したいファイルのパス

dest= には

展開先

copy=

にはコピーするかしないか

次にshellモジュール

これはシェルでの実行を指定できる

–  name:  rubyのインストール
   shell:  chdir=/tmp/{{  rubyver  }}  ./configure  –disable-install-doc

–  name:  make  ruby

   shell:  chdir=/tmp/{{  rubyver  }}  make

–  name:  make  install  ruby

   shell:  chdir=/tmp/{{  rubyver  }}  make install

というように指定する

あとsql 関連としては

postgresql_userモジュールがあり

これは

postgresql でユーザー作成するモジュール

–  name:  PostgreSQL  redmine  user作成
   postgresql_user:
     name=redmine

     password={{  password }}

というように

name=

へユーザー名

password=

へパスワード

を設定する

Ansibleと playbook

Ansibleは対象サーバーに多数の設定を一度に投入することが多いため

普通はansibleコマンド実行にはならない

複数処理させるなら

playbookをつくることになる

playbookは YAML 形式になり

拡張子は

.yml になる

–  hosts:  all
   tasks:
    –  name:  slコマンドのyumインストール

       yum:  name=sl

というplaybookなら

– hosts: には対象サーバーのIPを記述

もし all ならすべて対象になる

tasks:

のところには

処理する内容を記述していく

– name:

の部分は、ラベルやコメントのようなものなので

日本語でもok

あとは、この下へ処理を書いていく

今回はyum で sl をインストールするので

yum: name=sl

となる

ここまでの内容を

yum.yml

としてplaybookとして保存し

実行するには

ansible-playbookコマンドを使う

今回なら

ansible-playbook yum.yml

となる

ちなみにAnsibleでは

処理は重複しないので

2回実行しても設定済みと表示されるだけになる

​Ansible メモ

Ansible メモ

CentOS7.2 だと

標準リポジトリにAnsibleがないため

EPELリポジトリを使う

yum  install  epel-release

なお、最新版のAnsible 2.0を使うなら

epel-testingリポジトリを有効化すること

yum  install  ansible  –enablerepo=epel-testing

yum  install  ansible

だけだと

Ansible 1.9.4 がインストールされるので

yum  install  ansible  –enablerepo=epel-testing

とすること

これなら、最新版がインストールされる

なお、古くても

これを実行すれば最新版になる

なお、Ansibleのバージョン確認は

ansible  –version

でできる

Ansibleの実行コマンドは

ansible サーバーIP モジュールオプション モジュール名

となり

例を書くと

ansible 192.168.1.100 -m ping

これで

pingが実行されるコマンドになる

ただし、Ansibleは

セキュリティーのため

hosts ファイルに書かれているIPでしか

実行できないため

これをやらないとコマンドは失敗になる

なので

次にAnsibleを使うための設定

Ansibleを使うなら

対象サーバーへ接続する設定が欲しいという理由のため

今回、実行してるのはCentOS7.2

このosでのhostsファイルの場所は

/etc/ansible/hosts

になる

書き方は

192.168.1.100

というようにIPを書くだけでok

なお

-i オプションをつければ

別のファイルを指定することもできる

ただし、わかりにくくなるから

デフォルトのものを使うのがおすすめ

しかし、これだけでもまだエラーになる

これは

Ansibleを使うには認証が必要だから

今回は公開鍵認証を使うことに

ssh-keygen

で鍵を作成

ssh-copy-id 192.168.1.100

鍵を安全に転送

Ansibleコマンドの詳細は

ansible –help

で確認できる

また、モジュール詳細については

ansible-doc モジュール名

で調べられる

例えば pingモジュールなら

ansible-doc ping

とすればok