カテゴリー別アーカイブ: Vagrant

ansible_localを使う

<目的>
Vagrantにて、ホストOSにAnsibleを入れずに、ゲストOSに入れたAnsibleでサーバを構成する

<前提>
Vagrantがインストール済み。

<Ansible設定ファイルの作成>
以下サンプル(YAML形式で記載する。)

- hosts: all
  become: yes
  user: vagrant
  tasks:
    - name: install the latest version of Apache
      yum:
        name=httpd 
        state=latest

hostsはとりあえずallとしておく。指定したい場合は別途hostsファイルの作成が必要。
下手にホスト名を記載してもうまく動かない。

<Vagrant設定ファイルの作成>
以下サンプル。

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-7.2"

  config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true

  config.vm.provision "shell", :path => "provision/install.sh"
  config.vm.provision "ansible_local" do |ansible|
      ansible.playbook = "provision/abe.yml"
      ansible.limit = 'all'
      ansible.verbose = true
      ansible.install = true
  end
end

provision/install.shは、AnsibleをyumでゲストOSにインストールするためのシェル。
適当に作っておけば良い。

<起動手順>
vagrant init bento/centos-7.2
vagrant plugin install vagrant-vbguest
vagrant up –provision
<動作確認>
vagrant ssh
とすればログインできる。
>sudo -s
とすればrootになれるので、あとはお好きなように何なりと。

Vagrantでmountできない

yum update実行後、以下のエラーが出て、マウントできない。

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

対処方法
<ゲストOS>

yum install kernel-devel
yum install gcc make

<ホストOS>

vagrant vbguest
vagrant plugin install vagrant-vbguest
vagrant vbguest
vagrant halt
vagrant up

以上

参考サイト
http://qiita.com/DQNEO/items/2375dd8002a831268cb5

VagrantのConfigの書き方

・メモリのアサイン

    config.vm.provider :virtualbox do |v|
       v.name = "centos7.1"
       v.customize ["modifyvm", :id, "--memory", 3072]
    end

・CPU個数の設定

    config.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id, "--cpus", "1"]
    end

・ネットワークの設定(IP)

    config.vm.network :private_network, ip: "192.168.37.2"

・シェルの実行

    config.vm.provision "shell", :path => "provision/install.sh"

・LocalAnsibleの実行

    config.vm.provision "ansible_local" do |ansible|
        ansible.playbook = "provision/vagrant.yml"
    end

Vagrant使い方

<前提条件>
・パソコンはMac
・Vagrantがインストール済み
・VirtualBox(Oracle)がインストール済み
・インストール先は以下
~/Documents/VM/vagrant/centos7/
・以下に欲しいOSがあること(今回はCentos7.2でやる)
http://www.vagrantbox.es/

<手順1:BOXインストール>
>vagrant box add centos72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
すると、以下のような感じにBOXのダウンロードが始まる。ここはデータ量がおおいので時間かかる。

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos72' (v0) for provider:
box: Downloading: https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
box: Progress: 3% (Rate: 826k/s, Estimated time remaining: 0:21:34)

<手順2:OSインストール>
まずディレクトリを作成して移動する。
>mkdir   ~/Documents/VM/vagrant/centos72/
>cd ~/Documents/VM/vagrant/centos72/

初期化する
>vagrant init bento/centos-7.2

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

 

<手順3:OS設定>

・ネットワーク(IPアドレス)の設定

$ vi Vagrantfile
# config.vm.network :private_network, ip: "192.168.33.10"
 ↑ ここのコメントアウトを削除してIPアドレスを好きな値に変更

<手順4:OS起動>
起動する。ちょっと時間かかる。
>vagrant up

<手順5:OSにログイン>
>vagrant ssh

<手順6:OSサスペンド>
>vagrant suspend

<手順7:OS停止>
>vagrant halt

<その他>
以下の表示がされたら、、、
default: Machine already provisioned. Run `vagrant provision` or use the `–provision`
>vagrant provision

ansible_localを使うには以下を実行してプラグインをインストール
vagrant plugin install vagrant-vbguest

<参考>

http://qiita.com/inouet/items/b36638adc2b5772db457

 

Vagrantインストール

Macにインストールします。
楽々でインストールできます。

1:サイトにアクセス。
2:Mac版を選択
3:dmpを実行
4:pkgインストール操作
5:動作確認
  コンソールを開いて以下を実行
  >vagrant –version

こんな感じに表示されて無事終了
Vagrant 1.9.1