【发布时间】:2019-08-30 19:03:18
【问题描述】:
我正在尝试在一台主机中创建密钥,然后在其余主机中部署该密钥。 但是 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
【问题讨论】:
-
尝试使用现有的 Ansible 解决方案,而不是使用 shell 处理所有事情。例如,不要使用
command: su dbadmin -c 'ssh-keygen...,而是使用become_user: dbadmin和command: ssh-keygen...(我不认为这是问题,但它会使烟雾变淡...)
标签: linux centos ansible centos7