2016-05-28 5 views
0

私は3台のマシンで簡単なバグログファイルを持ち、サーバープロビジョナーとしてはAnsibleです。 Vagrantfileは次のようになります。放浪アップ後アシスタントはマルチマシンで最初のマシンをプロビジョニングできるだけです。Vagrantfile

# -*- mode: ruby -*- 
# vi: set ft=ruby : 
Vagrant.configure(2) do |config| 

# Jira machine 
config.vm.define 'jira' do |jira| 
    jira.vm.box = 'puppetlabs/ubuntu-14.04-64-nocm' 
    jira.vm.network "private_network", ip:"192.168.77.11" 
    jira.vm.hostname = 'jira' 
    jira.vm.provider :virtualbox do |vb| 
    vb.name = 'jira' 
    end 
end 

# Master machine with proxy beetwen mattermost and jira 
config.vm.define 'master' do |master| 
    master.vm.box = 'puppetlabs/ubuntu-14.04-64-nocm' 
    master.vm.network "private_network", ip:"192.168.77.10" 
    master.vm.hostname = 'master' 
    master.vm.provider :virtualbox do |vb| 
    vb.name = 'master' 
    end 
end 

# Mattermost machine 
config.vm.define 'mattermost' do |mattermost| 
    mattermost.vm.box = 'puppetlabs/ubuntu-14.04-64-nocm' 
    mattermost.vm.network "private_network", ip:"192.168.77.12" 
    mattermost.vm.hostname = 'mattermost' 
    mattermost.vm.provider :virtualbox do |vb| 
    vb.name = 'mattermost' 
    end 
end 

# Provision part 
config.vm.provision :ansible do |ansible| 
    ansible.limit = 'all' 
    ansible.playbook = 'provisioning/main.yml' 
    ansible.inventory_path = 'developer' 
    ansible.sudo = true 
    ansible.verbose = '-vvvv' 
end 

エンド

、リスト上の最初のマシンが正しくプロビジョニングされたが、後にAnsibleは、次のいずれかにsshをすることはできません。デバッグで見たように、残りのマシンに対して同じ秘密鍵を使用して認証します。ここに提供からの出力の要点は:https://gist.github.com/Cosaquee/224a84f171aa8cd458d9ce56e8c8e111です。

私はちょうどAnsibleで遊ぶようになったので、私は秘密鍵をどのマシンにも使用するように強制する方法を知らない。たぶん、問題は何か他のものにあります。

助けがよかったです。ありがとうございました。

+0

各マシンブロックで無制限のプロビジョニングを実行できますか?私はこれが重複したコードであることを知っていますが、それほど良いことではありませんが、それがうまくいくかどうかを知るためには、このように動作すれば、 –

答えて

1

あなたの設定は次のようになります。プロビジョナがどのようにネストされているかに注目してください。

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

    # Webserver, jobserver and message queue VM 
    config.vm.define "app", primary: true do |app| 

     app.vm.box = "ubuntu/trusty64" 
     app.vm.hostname = "app.restream.vm" 
     app.vm.synced_folder ".", "/vagrant", disabled: true 
     app.vm.synced_folder ".", "/var/www/app" 
     app.vm.synced_folder "../infra", "/var/www/infra" 
     app.vm.synced_folder "../widgetcodebucket", "/var/www/widgetcodebucket" 
     app.vm.network "private_network", ip: "10.10.10.90" 

     app.vm.provider "virtualbox" do |vb| 
      vb.gui = false 
      vb.customize ["modifyvm", :id, "--nictype1", "virtio"] 
      vb.customize ["modifyvm", :id, "--memory", "4096"] 
      vb.customize ["modifyvm", :id, "--cpus", "4"] 
     end 

     app.vm.provision "ansible" do |ansible| 
      ansible.host_key_checking = false 
      ansible.limit = 'all' 
      #ansible.verbose = 'vvvv' 
      ansible.inventory_path = '../infra/hosts-dev' 
      ansible.playbook = "../infra/vm.yml" 
      ansible.extra_vars = { 
       symfony_env: 'dev', 
       ansible_ssh_user: 'vagrant', 
       nginx_user: 'vagrant', 
       redis_ip: '127.0.0.1', 
       redis_port: 6379, 
       git_branch: "develop" 
      } 
     end 
    end 

    # Statistics and monitoring VM 
    config.vm.define "stats" do |stats| 
     stats.vm.box = "ubuntu/trusty64" 
     stats.vm.hostname = "stats.restream.vm" 
     stats.vm.synced_folder ".", "/vagrant", disabled: true 
     stats.vm.synced_folder "../infra", "/var/www/infra" 
     stats.vm.network "private_network", ip: "10.10.11.11" 

     stats.vm.provider "virtualbox" do |vb| 
      vb.gui = false 
      vb.customize ["modifyvm", :id, "--nictype1", "virtio"] 
      vb.customize ["modifyvm", :id, "--memory", "4096"] 
      vb.customize ["modifyvm", :id, "--cpus", "4"] 
     end 

     stats.vm.provision "ansible" do |ansible| 
      ansible.limit = 'all' 
      ansible.host_key_checking = false 
      #ansible.verbose = 'vvvv' 
      ansible.inventory_path = '../infra/hosts-dev' 
      ansible.playbook = "../infra/stats.yml" 
      ansible.extra_vars = { 
       symfony_env: 'dev', 
       ansible_ssh_user: 'vagrant', 
       graphite_db_name: 'graphite', 
       graphite_db_engine: 'django.db.backends.mysql', 
       graphite_db_user: 'root', 
       graphite_db_pass: 'root', 
       graphite_db_host: '127.0.0.1', 
       graphite_db_port: 3306 
      } 
     end 
    end 

end 
関連する問題