vagrantで仮想環境立ち上げからansible実行まで
vagrantで仮想環境立ち上げからansible実行まで
仮想環境でさくっと試したいこととかあるときにansibleが便利だと聞いたので、とりあえず使ってみました。
ファイル
Vagrantfile
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centOS65Box" config.vm.network "forwarded_port", guest: 3000, host: 3000 config.vm.network "private_network", ip: "192.168.33.11" config.vm.synced_folder "/host_data", "/home" # ローカルマシンと仮想環境のフォルダーをlinkさせる。 end
provision_vagrant.yml
--- - hosts: all user: vagrant sudo: yes tasks: - name: インストール yum: name={{ item }} state=installed with_items: - vim - git
ansible.cfg
[defaults] hostfile = ./hosts remote_user = vagrant private_key_file=/Users/hoge/.vagrant.d/insecure_private_key
手順
結果
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'centOS65Box'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: ruby-lesson_default_1423653776406_98290 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat default: Adapter 2: hostonly ==> default: Forwarding ports... default: 3000 => 3000 (adapter 1) default: 22 => 2222 (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Configuring and enabling network interfaces... ==> default: Mounting shared folders... default: /vagrant => /ruby-lesson default: /home => /ruby-lesson/host_data
$ ansible-playbook provision_vagrant.yml PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [192.168.33.11] TASK: [インストール] ************************************************* changed: [192.168.33.11] => (item=vim,git) PLAY RECAP ******************************************************************** 192.168.33.11 : ok=2 changed=1 unreachable=0 failed=0
tips
vagrantを壊して作って繰り返しているとknown_hostsに設定が残っていてはじかれてしまう。(参考:vagrant再作成するとSSH繋がらなくなったときの対処)
- 対処法:
ssh-keygen -R 192.168.33.11
- 対処法:
その他
- windows環境では諸々大変らしい。必要に迫られたらこちらを参考にしてやってみよう。。。
- ansible-playbookの実行がとても遅い。なぜだろう?