Vagrantfile
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: "echo Hello"
config.vm.define "vm1" do |vm1|
vm1.vm.network "private_network", ip: "192.168.20.11"
vm1.vm.box = "ubuntu/focal64"
end
end
Запустите виртуальную машину
vagrant up
Ниже приведены инвентарь и сборник сценариев Ansible:
inventory.ini
vagrant@192.168.20.11 ansible_ssh_private_key_file=/home/edith/vagrant/servers/.vagrant/machines/vm1/virtualbox/private_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o IdentitiesOnly=yes'
Я создал открытый/закрытый ключ с помощью ssh-keygen.
- Закрытый ключ: ~/ .ssh/ansible
- открытый ключ: ~/.ssh/ansible.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXCAw8uJh10KraQm1xoI7umz+gho2xs5mPp477TnslF ansible
Следующий сценарий создает пользователя с именем Simone, настраивает SSH для этого пользователя и предоставляет ему привилегии sudo.
site.yml
---
- hosts: all
become: true
tasks:
- name: create simone user
user:
name: simone
groups: root
create_home: yes # Ensure the home directory is created
- name: debug public key path
debug:
msg: "{{ lookup('file', '/home/edith/.ssh/ansible.pub') }}"
- name: add ssh key for simone
tags: always
authorized_key:
user: simone
state: present
key: "{{ lookup('file', '/home/edith/.ssh/ansible.pub') }}"
exclusive: yes
- name: add sudoers file for simone
tags: always
copy:
src: sudoer_simone
dest: /etc/sudoers.d/simone
owner: root
group: root
mode: 0440
Я могу войти в систему вручную, используя пользователя Simone на виртуальной машине Vagrant vm1
$ vagrant ssh vm1
vagrant@ubunt-focal:~$ sudo su - simone
$ whoami
simone
$ cat ~/.ssh/authorized_keys
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXCAw8uJh10KraQm1xoI7umz+gho2xs5mPp477TnslF ansible
Обратите внимание, что открытый ключ добавляется в файлauthorized_keys на виртуальной машине.
Однако, когда я пытаюсь войти в систему напрямую используя ssh на моей локальной машине, без входа в виртуальную машину, я получаю сообщение об ошибке.
$ ssh -i ~/.ssh/ansible simone@192.168.20.11
The authenticity of host '192.168.20.11 (192.168.20.11)' can't be established.
ED25519 key fingerprint is SHA256:N03pqpEeG5wyEDZDkpqCALvIgosGHJ4smZUpYNURSG4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Failed to add the host to the list of known hosts (/home/edith/.ssh/known_hosts).
Received disconnect from 192.168.20.11 port 22:2: Too many authentication failures
Disconnected from 192.168.20.11 port 22
Подробнее здесь: https://stackoverflow.com/questions/784 ... ine-create
Мобильная версия