Vagrantfile设置为允许Ansible在SSH中

问题描述:

我有一本关于Ansible Devops的书。我的问题是我可以SSH进入服务器,但Ansible不能。这是我的vagrantfile;Vagrantfile设置为允许Ansible在SSH中

# -*- mode: ruby -*- 
# vi: set ft=ruby 

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    # General Vagrant VM configuration 
    config.vm.box = "geerlingguy/centos7" 
    config.ssh.insert_key = false 
    config.vm.synced_folder ".", "/vagrant", disabled: true 
    config.vm.provider :virtualbox do |v| 
    v.memory = 256 
    v.linked_clone = true 
end 

# Application server 1 
    config.vm.define "app1" do |app| 
    app.vm.hostname = "orc-app1.dev" 
    app.vm.network :private_network, ip: "192.168.60.4" 
end 

# Application server 2 
    config.vm.define "app2" do |app| 
    app.vm.hostname = "orc-app2.dev" 
    app.vm.network :private_network, ip: "192.168.60.5" 
end 

# Database server 
    config.vm.define "db" do |db| 
    db.vm.hostname = "orc-db.dev" 
    db.vm.network :private_network, ip: "192.168.60.6" 
end 
end 

而我的Ansible hosts文件;

# Application servers 
[app] 
192.168.60.4 
192.168.60.5 
# Database servers 
[db] 
192.168.60.6 

# Group 'multi' with all servers 
[multi:children] 
app 
db 

# Variables that will be appliedto all servers 
[multi:vars] 
ansible_ssh_user=vagrant 
ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key 

我知道我可以明确地添加ansible_ssh_port=2200等,但我宁愿它在vagrantfile

+0

Stack Overflow是编程和开发问题的网站。这个问题似乎是无关紧要的,因为它不是关于编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://*.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。 – jww

设置你可以尝试一些事情

  1. 设置全SSH密钥路径,在ansible配置。
  2. 尝试使用ssh连接你的自己。
  3. 使用telnet检查是否打开了第22个端口。如果它已关闭,则可以尝试在VM中禁用防火墙。 CentOS默认启用它。