LoginSignup
10
9

More than 5 years have passed since last update.

WindowsマシンでVagrant使ってAnsible実験環境構築

Last updated at Posted at 2014-03-29

環境

OS : Windows 7(母艦とよぶ)
VirtualBox : 4.3.10
Vagrant : 1.5.1

vagrantで作成する環境

OS 名前 備考
Ubuntu 13.04 i386 server ansible入れてclientを弄る側
Ubuntu 13.04 i386 client 弄られる側

ansibletestフォルダの作成

C:\vagrantVMs\ansibletest

でやる

今持っているboxの確認

コマンドプロンプトで vagrant box list

vagrant 設定ファイルの作成

コマンドプロンプトで vagrant init <boxname>
例)
vagrant init Ubuntu-13.04-i386

2台立ち上げるために vagrant 設定ファイルを修正

Vagrantfile.
      # serverという仮想サーバを定義
      config.vm.define :server do |server|
        server.vm.box = "Ubuntu-13.04-i386"
        server.vm.network :private_network, ip:"192.168.50.1"
      end

      # clientという仮想サーバを定義
      config.vm.define :client do |client|
        client.vm.box = "Ubuntu-13.04-i386"
        client.vm.network :private_network, ip:"192.168.50.2"
      end

vagrant 起動

vagrant up

起動確認

vagrant status

server running (virtualbox)
client running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run vagrant status NAME.

server から clientにssh接続できるようにする

母艦の
C:\Users{ユーザ名}.vagrant.d\insecure_private_key
を server の id_rsa として配置する

  1. insecure_private_key を C:\vagrantVMs\ansibletest\tmp にコピーして、serverから見れるようにする
  2. ターミナルでserver(127.0.0.1:2222)に接続
  3. ローカルの秘密鍵をserverの秘密鍵に設定
    $ cp /vagrant/tmp/insecure_private_key ~/.ssh/id_rsa
  4. chmod 600 id_rsa

server にログインして、sshしてclientに接続できることを確認する

$ ssh 192.168.50.2

server にansible インストール

proxy越えする場合

  • 環境変数 .bashrc にproxy設定

    ~/.bashrc
    export http_proxy="http://プロキシ名:ポート/"
    export https_proxy="http://プロキシ名:ポート/"
    export ftp_proxy="ftp://プロキシ名:ポート/"
    
  • 再読み込み
    $ source ~/.bashrc

via Apt

  • apt-get をproxy経由

    80proxyファイルを作成する

    $ sudo vi /etc/apt/apt.conf.d/80proxy

    /etc/apt/apt.conf.d/80proxy
        Acquire::http::proxy "http://プロキシ名:ポート/";
    
  • add-apt-repositoryでProxy経由

    visudoで以下を追記

    $ sudo visudo

        Defaults env_keep="http_proxy"
        Defaults env_keep="https_proxy"
    

via Yum

  • yum をproxy経由
    sudo vi /etc/yum.conf して以下追記

    /etc/yum.conf
    proxy=http://プロキシ名:ポート/
    

ansibleインストール

via apt

  1. $ sudo apt-add-repository ppa:rquillo/ansible

  2. $ sudo apt-get update

  3. $ sudo apt-get install ansible

via yum

  1. CentOS 外部レポジトリの追加(EPEL)
    $ sudo rpm --httpproxy プロキシ名 --httpport ポート -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

  2. $ sudo yum install ansible

バージョン確認

$ ansible --version

ansible 1.4.3

ansible作業用ディレクトリを作成して移動

$ mkdir ~/ansible && cd ~/ansible

インベントリリストとなるhostsファイル作成

$ echo 192.168.50.2 > hosts

ansible動作確認

  • コマンドの書式
    ansible -i <インベントリリストファイル> <対象> -m <モジュール名> -a <オプション>

    例) ping
    $ ansible -i hosts 192.168.50.2 -m ping

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

    例) uname -r
    $ ansible -i hosts 192.168.50.2 -a 'uname -r'

    192.168.50.2 | success | rc=0 >>
    3.8.0-35-generic

疎通確認まで完了

その他コマンド

  • モジュールのドキュメント確認
    $ ansible-doc <モジュール名>

参考

ansible本家


構成管理ツール Ansible について
入門Ansible
Chefがつらい人のためのAnsibleのはなし
構成管理ツール Ansible を使ってみる
Ansible Tutorial
ansibleを使ってみる
WindowsでAnsibleする
windowsでもansibleがしたいのでvagrant経由でdockerを使って二重仮想環境を構築する
Vagrant on Macで複数VM起動 + Ansible

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9