インフラ

[Ansible入門]俺でもできた!Vagrantを使ってAnsible環境を作る(MAC・Windows)

VagrantでAnsible練習用の環境を作ります。Mac向けの手順となっていますが、Windowsでもできるよう注釈を入れています。

環境

vagrantで、ansibleを実行するサーバと実行されるサーバーの2台立てます。

  • vagrant 2.0.1
  • ansible 2.4.2.0
  • CentOS 7.1
ansible図

Vagrantで仮想サーバを作成する

Virutalboxのインストール

公式サイトからダウンロードしてきます。

Virtualbox公式サイト

Vagrantのインストール

こちらも公式サイトから、ダウンロードしてきます。

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

Vagrantでよく使うコマンド

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の具体的な使い方について書いてみます。

Amazonで「Ansible」の本をみてみる!!

効率よく公開鍵を配布する方法 Ansibleで複数のサーバとユーザに公開鍵を登録する複数のユーザを作成して、それぞれ公開鍵を配置したい時がたまにあります。 sshして公開鍵を置くのは、面倒です。1台とかだったらいいかもし...
【Ansible】playbookを分割してユーザ作成・グループ作成をする以前、ユーザの作成をやってみたのですが、今回はplaybookを分けてやってみます。 playbookを分けると、再利用性や可読性が高...
現役インフラエンジニアが選ぶUdemyインフラ系のおすすめコース3選動画学習プラットフォームUdemyのインフラ系おすすめコースを厳選しました。どのコースも基礎から学べるので、インフラ経験が浅い人にもおすすめです。...