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
そして私のAnsiblehosts
ファイル。
# 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ユーザーはrootではなく、本番環境でsudo機能を持つユーザーであることをお勧めします。
もう1つの選択肢は、ansibleユーザーrsa秘密/公開鍵を新しく構成されたシステムに手動で配置することです。この場所は ~ansible_user/.ssh/authorized_keys です。