Configuração Vagrantfile para permitir Ansible para SSH em

0

Eu tenho um arquivo vagrant de um livro sobre Ansible for Devops. O problema que tenho é que eu posso SSH nos servidores, mas Ansible não pode. Aqui está o meu vagrantfile ;

# -*- 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

E meu arquivo 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

Sei que posso adicionar explicitamente ansible_ssh_port=2200 etc, mas prefiro que seja configurado em vagrantfile

    
por eekfonky 22.10.2017 / 11:32

1 resposta

1

Você está usando uma chave ssh para autenticar o ansible, e como tal você configura no vagrant um usuário com uma chave ssh, como em:

config.ssh.insert_key = true
config.ssh.username = "deploy-user"
config.ssh.private_key_path = "shared/deploy-user.pem"

Eu também aconselho o usuário ssh a não ser root, mas um usuário com recursos sudo quando em uma configuração de produção.

A outra alternativa é colocar o usuário ansible rsa private / public key manualmente em um sistema recém-provisionado. O lugar é ~ ansible_user / .ssh / authorized_keys

    
por 22.10.2017 / 12:17