我设置了以下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 provision
或vagrant 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
这是什么问题?