大家下午好,我开始学习 Ansible 所以请不要过多评判剧本的质量。问题是,当你指向一行中的直接行时,会创建一个带有密码的用户,然后我可以通过ssh登录。但如果我通过变量传递密码,那就这样了,我无法通过 ssh 登录,就像没有设置密码一样。我尝试了两种方法(如代码所示),但除了直接传输之外,它们都不起作用。告诉我你如何解决这个问题?依赖那里所述的文档
If provided, set the user’s password to the provided encrypted hash (Linux) or plain text password (macOS).
这是剧本的一部分
vars:
username: ayu21
password_user : 123qwe!@#
tasks:
- name: Get name if debian family when create user
ansible.builtin.user:
user: "{{ username }}"
password : "{{ '123qwe!@#' | password_hash('sha512') }}"
# password: '{{ password_user }}'
home: /home/"{{ username }}"
shell: /bin/bash
groups: sudo
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/"{{ username }}"
when: ansible_facts['os_family'] == "Debian"
总的来说,我自己设法解决了这个问题,我错误地传递了变量。
正确的传输是: