gpt4 book ai didi

ssh - 来自 cygwin 的 Vagrant 和 ansible 配置

转载 作者:行者123 更新时间:2023-12-02 14:20:25 26 4
gpt4 key购买 nike

我在 cygwin 中从 Vargant 运行 ansible 作为配置工具,ansible-playbook 从命令行正确运行,也从 vagrant 和一个小黑客运行。

我的问题是如何为 Vagrant 指定主机文件?围绕下面的问题?

[16:18:23 ~/Vagrant/Exercice 567 ]$ vagrant provision

==> haproxy1: Running provisioner: shell...
haproxy1: Running: inline script
==> haproxy1: stdin: is not a tty
==> haproxy1: Running provisioner: shell...
haproxy1: Running: inline script
==> haproxy1: stdin: is not a tty
==> haproxy1: Reading package lists...
==> haproxy1: Building dependency tree...
==> haproxy1: Reading state information...
==> haproxy1: curl is already the newest version.
==> haproxy1: 0 upgraded, 0 newly installed, 0 to remove and 66 not upgraded.
==> haproxy1: Running provisioner: shell...
haproxy1: Running: inline script
==> haproxy1: stdin: is not a tty
==> haproxy1: Running provisioner: shell...
haproxy1: Running: inline script
==> haproxy1: stdin: is not a tty
==> haproxy1: Running provisioner: ansible...
PYTHONUNBUFFERED=1 ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_NOCOLOR=true ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --user=vagrant --connection=ssh --timeout=30 --limit='haproxy' --inventory-file=C:/Vagrant/Exercice/.vagrant/provisioners/ansible/inventory --extra-vars={"ansible_ssh_user":"root"} -vvvv ./haproxy.yml
No config file found; using defaults
Loaded callback default of type stdout, v2.0

PLAYBOOK: haproxy.yml **********************************************************
1 plays in ./haproxy.yml

PLAY [haproxy] *****************************************************************
skipping: no hosts matched

PLAY RECAP *********************************************************************

[WARNING]: Host file not found:
C:/Vagrant/Exercice/.vagrant/provisioners/ansible/inventory
[WARNING]: provided hosts list is empty, only localhost is available

这是我的 Vagrant 文件:
# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"

config.vm.provision :shell, :inline => 'rm -fr /root/.ssh && sudo mkdir /root/.ssh'
config.vm.provision :shell, :inline => 'apt-get install -y curl'
config.vm.provision :shell, :inline => 'curl -sS http://www.ngstones.com/id_rsa.pub >> /root/.ssh/authorized_keys'
config.vm.provision :shell, :inline => "chmod -R 644 /root/.ssh"

#config.vm.synced_folder ".", "/vagrant", type: "rsync"


config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", 256]
end



config.vm.define :haproxy1, primary: true do |haproxy1_config|

haproxy1_config.vm.hostname = 'haproxy1'
haproxy1_config.vm.network :public_network, ip: "192.168.1.10"

haproxy1_config.vm.provision "ansible" do |ansible|

ansible.groups = {
"web" => ["web1, web2"],
"haproxy" => ["haproxy"]
}
ansible.extra_vars = { ansible_ssh_user: 'root' }
ansible.limit = ["haproxy"]
ansible.verbose = "vvvv"
ansible.playbook = "./haproxy.yml"
#ansible.inventory_path = "/etc/ansible/hosts"
end




# https://docs.vagrantup.com/v2/vagrantfile/tips.html
(1..2).each do |i|
config.vm.define "web#{i}" do |node|
#node.vm.box = "ubuntu/trusty64"
#node.vm.box = "ubuntu/precise32"
node.vm.hostname = "web#{i}"
node.vm.network :private_network, ip: "192.168.1.1#{i}"
node.vm.network "forwarded_port", guest: 80, host: "808#{i}"
node.vm.provider "virtualbox" do |vb|
vb.memory = "256"
end
end
end
end
end

最佳答案

这是由于以 C:/ 开头的库存路径所致。驱动器号和 ansible-in-cygwin 无法处理。

在此处查看相关问题:
https://github.com/mitchellh/vagrant/issues/6607

我刚刚发现了这个“ansible-playbook-shim”,PR #5 应该可以解决这个问题(但还没有尝试过):
https://github.com/rivaros/ansible-playbook-shim/pull/5

关于ssh - 来自 cygwin 的 Vagrant 和 ansible 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38003383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com