Ansibleインストール
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
ディスカッション
コメント一覧
まだ、コメントがありません