VagrantでAnsible練習用の環境を作ります。Mac向けの手順となっていますが、Windowsでもできるよう注釈を入れています。
環境
vagrantで、ansibleを実行するサーバと実行されるサーバーの2台立てます。
- vagrant 2.0.1
- ansible 2.4.2.0
- CentOS 7.1
Vagrantで仮想サーバを作成する
Virutalboxのインストール
公式サイトからダウンロードしてきます。
Vagrantのインストール
こちらも公式サイトから、ダウンロードしてきます。
Vagrant用のフォルダを作成
Vagrantfileを置くところを作ります。どこでもいいのでフォルダを作っておきます。
作成したフォルダに、移動します。
mkdir <任意の名前> cd <任意の名前>
Vagrantfileの作成
今回は、Centos7.1を使うので、下記のコマンドでVagrantfileを作成します。
ちなみに、使えるOSはVagrantCloudのサイトから確認できます。
[localhost@localhost]$ vagrant init bento/centos-7.1
Vagrantfileが作成されたら、サーバを2台立てたいのでファイルを編集します。
[localhost@localhost]$ vi Vagrantfile
※viがない場合は、テキストエディタで編集します
「config.vm.box = “bento/centos-7.1″」をコメントアウトして、hostとslaveサーバの設定を追加します。
config.vm.define "host" do |node| node.vm.box = "bento/centos-7.1" node.vm.hostname = "host" node.vm.network :private_network, ip: "192.168.50.10" end config.vm.define "slave" do |node| node.vm.box = "bento/centos-7.1" node.vm.hostname = "slave" node.vm.network :private_network, ip: "192.168.50.20" end
Vagrantで仮想サーバを起動
Vagrantfileの編集まで終わったら、仮想サーバを起動します。
[localhost@localhost]$ vagrant up
仮想サーバにsshできることを確認します。
[localhost@localhost]$ vagrant ssh host
Ansible環境の構築
Ansibleのインストール
ansible環境を構築するhostサーバにsshします。
[localhost@localhost]$ vagrant ssh host
ansibleをインストールします。一応、yum updateもしておきます。
[vagrant@host ~]$ sudo yum install ansible
[vagrant@host ~]$ sudo yum update
ssh configの編集
毎回、IPアドレスを打つのは面倒なのでssh configに書いておきます。
[vagrant@host ~]$ vi ~/.ssh/config Host slave HostName 192.168.50.20 [vagrant@host ~]$ chmod 600 ~/.ssh/config
認証用の鍵の作成、配布
Ansibleでは、設定対象にSSH接続が必要です。公開鍵認証でssh接続を行えるようにします。
公開鍵認証の鍵を作成します。パスワードとか設定できますが、デフォルトのままエンターを押します。
[vagrant@host ~]$ ssh-keygen -t rsa
slaveサーバに公開鍵をコピーします。パスワードは「vagrant」です。
[vagrant@host ~]$ ssh-copy-id slave
ssh接続してみます。パスワード求められなかったら成功です。
[vagrant@host ~]$ ssh slave
inventoryファイルを作成する
inventoryファイルは、簡単に言うと対象ホストの一覧です。
hostsという名前にすることが多いです。
作業用のディレクトリを作ります。
[vagrant@host ~]$ mkdir practice
インベントリファイルを作成します。
[vagrant@host practice]$ vi hosts
[slave] 192.168.50.20
pingモジュールが使用できるか、確認します。pongと応答があれば、成功です。
[vagrant@host practice]$ ansible slave -i hosts -m ping
ansible.cfgにinventoryファイルを登録する
ansibleコマンドを実行するたびに、hostsを指定するのは面倒なのでansible.cfgに書いておきます。
[vagrant@host practice]$ vi ansible.cfg
[defaults] hostfile = ./hosts
これで、-i hostsをしなくても実行できるようになりました。
[vagrant@host practice]$ ansible slave -m ping
まとめ
今回は、Ansibleの練習用の環境構築についてまとめてみました。
次回以降は、構築した環境を使ってAnsibleの具体的な使い方について書いてみます。