当在Vagrant中进行安全configuration时,我无法获得服务器/angular色特定的剧本运行。 有一个共同的剧本运行所有主机,这是工作,但是当试图针对一个特定的angular色,我错过了一些东西。 任何想法是什么失踪?
完美的输出是:
Running Ansible playbook... PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [127.0.0.1] TASK: [common | ensure apt-get is up to date] ********************************* ok: [127.0.0.1] TASK: [common | ensure build-essential installed] ***************************** changed: [127.0.0.1] TASK: [common | ensure git is installed] ************************************** changed: [127.0.0.1] TASK: [common | ensure curl is installed] ************************************* changed: [127.0.0.1] PLAY [zookeeper_servers] ****************************************************** skipping: no hosts matched PLAY [kafka_servers] ********************************************************** skipping: no hosts matched PLAY [storm_servers] ********************************************************** skipping: no hosts matched PLAY RECAP ******************************************************************** 127.0.0.1 : ok=5 changed=3 unreachable=0 failed=0
使用以下目录结构:
- Vagrantfile - vagrant - playbook.yml - hosts - roles - common - tasks - main.yml - kafka_servers - tasks - main.yml - storm_servers - tasks - main.yml - zookeeper_servers - tasks - main.yml
# The main playbook - hosts: all roles: - common - hosts: zookeeper_servers roles: - { role: zookeeper_servers } - hosts: kafka_servers roles: - { role: kafka_servers } - hosts: storm_servers roles: - { role: storm_servers }
hosts文件包含
[zookeeper_servers] zookeeper1 zoo_id=1 [storm_servers] storm1 [kafka_servers] kafka1
stream氓文件包含
# -*- mode: ruby -*- # vi: set ft=ruby : CUSTOM_CONFIG = { "BOX_NAME" => "precise64", "BOX_URL" => "http://files.vagrantup.com/precise64.box", "HEADLESS" => false } Vagrant.configure("2") do |config| config.vm.define "kafka" do |kafka| kafka.vm.box = CUSTOM_CONFIG['BOX_NAME'] end config.vm.define "zookeeper" do |zookeeper| zookeeper.vm.box = CUSTOM_CONFIG['BOX_NAME'] end config.vm.define "storm" do |storm| storm.vm.box = CUSTOM_CONFIG['BOX_NAME'] end if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) # provisioning with ansible on windows config.vm.provision "shell", path: "./vagrant/ansible-windows.sh" else # provisioning with ansible config.vm.provision :ansible do |ansible| ansible.playbook = "./vagrant/playbook.yml" ansible.inventory_path = "./vagrant/roles" end end end
stream浪者忽略你的库存文件,它创build它自己的( 源 )。
您需要在Vagrantfile中指定组:
ansible.groups = { "group1" => ["machine1"], "group2" => ["machine2", "machine3"], "all_groups:children" => ["group1", "group2", "group3"] }
我发现的一个问题是,ansible.inventory_path被设置为一个目录,并需要对主机文件
ansible.inventory_path = "./vagrant/hosts"
而不是它指向的目录
ansible.inventory_path = "./vagrant/roles"
现在,我正在使angular色特定的剧本在我的Mac上正常运行。 窗户方面仍然是未知的如何使其工作。