Ansible и Vagrant — выдают аргументы для предоставления ansible

#vagrant #ansible #provisioning

#vagrant #ansible #предоставление

Вопрос:

Мой коллега написал скрипт для автоматизации установок Vagrant, включающий скрипты Ansible. Так что, если я запущу ansible provision , сборник пьес ansible / playbooks / provision.yml` выполняется на компьютерах vagrant.

Недостатком этого сценария является то, что Ansible playbook будет развертываться только на компьютере с ansible provision .

Теперь, когда я пишу код и работаю, я замечаю недостатки. Потому что я могу предоставить ansible-playbook параметры / аргументы, такие как ansible-playbook -i inventory provision.yml -vvv --tags "test" . Но это невозможно из-за архитектурной проблемы.

Итак, вместо решения реальной проблемы (от которой я пытаюсь уклониться), есть ли какие-нибудь гуру, которые могут указать мне правильный directoin, чтобы можно было приводить аргументы в ansible provision? Например. ansible provision -vvv .

Я посмотрел на https://www.vagrantup.com/docs/cli/provision.html но без посторонней помощи.

Спасибо.

Ответ №1:

Не совсем уверен, что я правильно понял, но, возможно, эта конфигурация (из одного из моих проектов) в vagrantfile могла бы помочь :

  config.vm.provision "ansible" do |ansible|
        ansible.playbook = "ansible/playbook.yml"
        ansible.limit = 'all'
        ansible.tags = 'local'
        ansible.sudo = true
        ansible.verbose = 'v'
        ansible.groups = {
          "db" => ["db"],
          "app" => ["app"],
          "myproject" => ["myproject"],
          "fourth" => ["fourth"],
          "local:children" => ["db", "app", "myproject", "fourth"]
        }
    end
  

В этом Vagrantfile я настроил 4 vagrant виртуальных машины.

vagrant_ansible_inventory выглядит следующим образом :

 # Generated by Vagrant

db ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
app ansible_ssh_host=127.0.0.1 ansible_ssh_port=2200 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
myproject ansible_ssh_host=127.0.0.1 ansible_ssh_port=2201 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key
fourth ansible_ssh_host=127.0.0.1 ansible_ssh_port=2202 ansible_ssh_private_key_file=/home/user/.vagrant.d/insecure_private_key

[db]
db

[app]
app

[myproject]
myproject

[fourth]
fourth

[local:children]
db
app
myproject
fourth
  

https://www.vagrantup.com/docs/provisioning/ansible_local.html