由游民报名

时间:2019-06-17 09:19:23

标签: ssl ansible vagrant ssl-certificate vagrantfile

我设置了以下ansible变量:

ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore

并通过ansible-playbook -i ansible/inventory.ini -vvvvv ansible/playbook.yml运行我的剧本就可以了。

现在,我希望流浪者通过流浪者触发ansible条款。 Vagrantfile看起来像这样:

Vagrant.configure(2) do |config|
  config.vm.define "virtualbox_windows_server_2016_1" do |s|
    ...
    s.vm.provision "ansible" do |ansible|
      ansible.playbook = "ansible/playbook.yml"
      ansible.inventory_path = "ansible/inventory.ini"
      ansible.config_file = "ansible/ansible.cfg"
      ansible.verbose = "-vvvvv"
    end
  end  
end

执行vagrant provisionvagrant up --provision会导致以下错误:

fatal: [virtualbox_windows_server_2016_1]: UNREACHABLE! => {
    "changed": false,
    "msg": "ssl: HTTPSConnectionPool(host='192.168.57.3', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')))",
    "unreachable": true
}

流浪者日志信息表明它运行以下命令:

PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_CONFIG='ansible/ansible.cfg' ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o IdentityFile=/Users/user/.vagrant.d/insecure_private_key -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --extra-vars=ansible_user\=\'vagrant\' --limit="virtualbox_windows_server_2016_1" --inventory-file=ansible/inventory.ini -vvvvv ansible/playbook.yml

有趣的是,当我复制并粘贴上面的命令并分别运行它(即在终端上不通过流浪汉)时,没有错误,并且一切都与我上面提到的简短ansible-playbook命令一样。

如果我设置了它,也可以在无游标的情况下使用

ansible_port: 5985 # not 5986

这是什么问题?

  • 流浪者2.2.4
  • 可用2.8.1
  • Python 3.7.3
  • macOS 10.13.6

0 个答案:

没有答案