Разверните ключ RSA на другие машины - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь создать ключ на одном хосте, а затем развернуть ключ на остальных хостах. Но ansible ошибается, потому что не может найти мой ключ.

Я создал пользователя dbadmin и позже пытаюсь нажать клавишу, в чем может быть ошибка. Многословие, к сожалению, не сильно помогает.

 - name: Create user
    user:
       name: dbadmin
       shell: /bin/bash

  - name: Add user to sudoers group
    copy:
          dest: "/etc/sudoers.d/dbadmin"
          content: "devops  ALL=(ALL)  NOPASSWD: ALL"

  - name: Give ssh directory readable
    file:
        path: /home/dbadmin/.ssh
        owner: dbadmin
        group: dbadmin
        mode: 0700
        state: directory

  - name: Generate /etc/ssh RSA host key
    command: su dbadmin -c 'ssh-keygen -q -t rsa -f /home/dbadmin/.ssh/vid_rsa -N ""'
    args:
      creates: /home/dbadmin/.ssh/vid_rsa
    run_once: True


  - name: Disable Password Authentication
    lineinfile:
           dest=/etc/ssh/sshd_config
           regexp='^PasswordAuthentication'
           line="PasswordAuthentication no"
           state=present
           backup=yes

  - name: Disable Password Authentication
    lineinfile:
        dest: /etc/ssh/sshd_config
        regexp: '^PermitRootLogin '
        line: PermitRootLogin no"
        state: present
        backup: yes

  - name: Deploy ssh key
    authorized_key:
        user: dbadmin
        key: "{{ lookup('file', '/home/dbadmin/.ssh/vid_rsa.pub') }}"
        path: '/home/dbadmin/.ssh'

ОШИБКА:

TASK [vertica-backup-restore : Deploy ssh key] *****************************************************************************************************************************
 [WARNING]: Unable to find '/home/dbadmin/.ssh/vid_rsa.pub' in expected paths (use -vvvvv to see paths)

fatal: [xx.xxx.xx.xx]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'file'. Error was a <class 'ansible.errors.AnsibleError'>, original message: could not locate file in lookup: /home/dbadmin/.ssh/vid_rsa.pub"}
 [WARNING]: Unable to find '/home/dbadmin/.ssh/vid_rsa.pub' in expected paths (use -vvvvv to see paths)

[dbadmin@ip-xx-xxx-xx-xx.ssh]$ ls -al
total 8
drwx------ 2 dbadmin dbadmin   40 Apr  9 12:48 .
drwx------ 3 dbadmin dbadmin   74 Apr  8 22:41 ..
-rw------- 1 dbadmin dbadmin 1675 Apr  9 12:48 vid_rsa
-rw-r--r-- 1 dbadmin dbadmin  417 Apr  9 12:48 vid_rsa.pub
[dbadmin@ip-xx-xx-xx-xx.ssh]$ pwd
/home/dbadmin/.ssh

1 Ответ

0 голосов
/ 09 апреля 2019

Из приведенного кода мне не ясно, как именно это должно копировать ключ с одного хоста на какой-то другой, но я собираюсь догадаться, что вы создаете пользователя и пару ключей соответственно на удаленной машине.

Поскольку модуль authorized_key, скорее всего, будет искать файл на вашем управляющем компьютере (на котором запущен ansible), если вы запустили задачи на удаленном сервере, он не сможет найти ключ локально.

Чтобы решить эту проблему, вы можете использовать: delegate_to: "{{ inventory_hostname }}", но для того, чтобы скопировать ключ с одного хоста на другой, вам все равно придется повторить эту задачу на всех ваших желаемых хостах и ​​делегировать ее хосту. Вы создали пользователя на.

Взгляните на документы , чтобы лучше понять делегирование.

Если бы это не было проблемой, это может помочь, если вы обновите вопрос с помощью хостов (не реальных IP-адресов), чтобы мы могли увидеть, что там может пойти не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...