Vagrantfile 설정을 통해 Ansible이 SSH 연결을 만들 수 있습니다.

Vagrantfile 설정을 통해 Ansible이 SSH 연결을 만들 수 있습니다.

DevOps에 관한 Ansible 책의 vagrantfile이 있습니다. 내가 겪고 있는 문제는 서버에 SSH로 연결할 수 있지만 Ansible은 할 수 없다는 것입니다. 이 내 꺼야 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

그리고 내 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

답변1

SSH 키를 사용하여 Ansible에 인증하므로 다음과 같이 vagrant에서 SSH 키를 사용하여 사용자를 구성할 수 있습니다.

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

또한 ssh 사용자는 루트가 아니라 프로덕션 환경에서 sudo 기능이 있는 사용자인 것이 좋습니다.

또 다른 옵션은 ansible 사용자 rsa 개인/공개 키를 새로 구성된 시스템에 수동으로 넣는 것입니다. 이 장소는 ~ansible_user/.ssh/authorized_keys입니다.

관련 정보