Ansibleインストール

2017-01-18

Ansibleについて

構成管理ツールの「Ansible」をインストール手順です。構成管理ツールでは、ChefやPuppeなどが有名ですが、Ansibleは、エージェントレスなので小規模で〜中規模で運用する構成で使用しやすいです。
また設定ファイルは、YAML形式のフォーマットで記述します。ChefやPuppetはRubyを使用した設定ファイルですので、Ansibleの方が敷居が低いように感じられます

【環境】

インストールするサーバーのIPアドレス等は以下となります。またOSはCentOS 6.x で構築しています

IPアドレス | ホスト名 | 用途
192.168.11.150 | test150 | 管理サーバー
192.168.11.151 | test151 |
192.168.11.152 | test152 |
192.168.11.153 | test153 |

OS:CentOS 6.6
実行ユーザー:testdev

事前準備

Ansibleを利用するにはSSH接続ができ、接続時にパスワードなしで条件は必要です。
その為に事前準備で以下の設定を実施しています

実施サーバー[全サーバー]

ノーパスでログインするユーザー作成

$ sudo useradd testdev
$ sudo passwd testdev
新しいパスワード:(任意のパスワード)

sudo をノーパス実行できるようにする
# su -
# visudo
testdev ALL=(ALL) NOPASSWD: ALL
# exit

ホスト名で疎通できるように、hosts変更する
$ sudo vi /etc/hosts
192.168.11.150 test150
192.168.11.151 test151
192.168.11.152 test152
192.168.11.153 test153

/home/testdev/.ssh/known_hostsの生成 及び ホスト名でSSH接続できるか確認
$ ssh -l testdev test150

ノーパスでSSHできるようにします。設定方法は以下URLを参照して設定します
SSHでパスワードなしでログインする方法

ansible インストール

実施サーバー[管理サーバー]

インストールするサーバーは、管理サーバー(test150)に設定します

Ansibleをインストールするには、Fedoraプロジェクトが提供しているEPEL(Extra Packages for Enterprise Linux)リポジトリからのRPMパッケージをインストールする必要がありますので、EPELを利用できるようにします

# CentOS 6.x 64bitの場合
$ sudo yum localinstall http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo yum update

yum update時に「No more mirrors to try.」のエラーになる場合、baseurl、mirrorlistを変更します
$ sudo yum update
エラー: failure: repodata/3a8ad6be6ac67612fe9f97bfc8e8dd3a4fb5a6c70958bfaa3ea808af78139547-primary.sqlite.bz2 from epel: [Errno 256] No more mirrors to try.

「No more mirrors to try.」のエラーになる場合
$ sudo vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

# ↓ 以下に変更 baseurlを有効にし、mirrorlistを無効にします

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

普段はEPELは有効しないように設定します
$ sudo vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
enabled=1

# ↓ 以下に変更 enabled=0に設定します

[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
enabled=0

yumコマンドの実行時にEPELのリポジトリを使用するには、以下のようにオプション「–enablerepo=epel」を付けて実行します
$ sudo yum --enablerepo=epel list

<h4>ansibleをインストール</h4>
EPELを有効にし、yumでansibleをインストールします

$ sudo yum install --enablerepo=epel ansible

管理対象マシンの登録

/etc/ansible/hostsに管理対象のサーバーを設定します
書式:(ホスト名 or IPアドレス):(ポート) となります

ポート番号を省略している場合は、22番ポートがSSH接続のポートとなります
例)3833ポートでSSH接続する場合
192.168.11.150:3833

ホスト名は、test150, test151, test152, test153の場合は以下の記述できます
test150[0:3]

$ sudo vi /etc/ansible/hosts
[test-server]
192.168.11.150
192.168.11.151
192.168.11.152
192.168.11.153

#ホスト名は、test150, test151, test152, test153の場合は以下の記述できます
test15[0:3]

#SSH接続時に3843ポートを利用している場合
192.168.11.150:3843
test151:3843

動作確認

全サーバーにPINGで疎通確認する場合

$ ansible all -m ping
192.168.11.150 | success >> {
"changed": false,
"ping": "pong"
}

192.168.11.152 | success >> {
"changed": false,
"ping": "pong"
}

192.168.11.153 | success >> {
"changed": false,
"ping": "pong"
}

192.168.11.151 | success >> {
"changed": false,
"ping": "pong"
}

dateコマンド実行
$ ansible test-server -a "/bin/date"
192.168.11.152 | success | rc=0 >>
Thu Jul 2 15:46:45 JST 2015

192.168.11.151 | success | rc=0 >>
Thu Jul 2 15:46:45 JST 2015

192.168.11.153 | success | rc=0 >>
Thu Jul 2 15:46:45 JST 2015

192.168.11.150 | success | rc=0 >>
Thu Jul 2 15:46:45 JST 2015

スポンサーリンク

LinuxAnsible

Posted by admin