使用 Vagrant 测试 ansible 角色

Using Vagrant to test ansible roles

如何将引用角色的剧本的范围限制到我提供的 Vagrant 映像?

我有一本剧本:

---
- name: Test Vagrant  
  hosts: all
  become: yes
  roles:
    - vagtest

这指向一个简单安装 yum 包树的角色。

我的Vagrantfile如下:

Vagrant.require_version ">= 1.7.0"

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"

  config.ssh.insert_key = false

  config.vm.provision "ansible" do |ansible|
    ansible.verbose = "v"
    ansible.playbook = "vagtest.yml"
  end
end

现在一切正常 - vagrant up / vagrant provision。我担心剧本中的 'hosts: all' 。有没有办法限制剧本的范围,以便只有我的流浪形象受到影响?我担心如果剧本是在 vagrant 之外执行的,那么测试剧本将在整个环境中执行。

谢谢。

您需要创建一个 hosts/inventory 文件。在该主机文件中指向您的流浪图像。

然后,将您的 hosts: all 更改为 hosts: <what you provide in your host file>

运行 与 ansible-playbook -i hosts playbook.yml