Ansible在首次登录时处理密码更改

Ansible在首次登录时处理密码更改,ansible,change-password,Ansible,Change Password,我正在创建一个剧本,可以登录到虚拟机并执行初始配置。用于创建VM的映像具有默认用户名,需要在初始登录时更改密码。我正在寻找如何在Ansible中处理此问题的方法?您正在寻找模块,尤其是选项 请记住,password选项需要实际密码的散列。检查如何得到它。(需要对其进行散列,否则您的剧本或清单中会有明文密码,这会带来安全风险。) 例如: -name:确保更改默认用户的密码 用户: 姓名:yourdefaultuser 密码:“$6$QkjC8ur2WfMfYGA$ZNUxTGoe5./F0b4GJ

我正在创建一个剧本,可以登录到虚拟机并执行初始配置。用于创建VM的映像具有默认用户名,需要在初始登录时更改密码。我正在寻找如何在Ansible中处理此问题的方法?

您正在寻找模块,尤其是选项

请记住,
password
选项需要实际密码的散列。检查如何得到它。(需要对其进行散列,否则您的剧本或清单中会有明文密码,这会带来安全风险。)

例如:

-name:确保更改默认用户的密码
用户:
姓名:yourdefaultuser
密码:“$6$QkjC8ur2WfMfYGA$ZNUxTGoe5./F0b4GJGrcEA.ff9An473wmPsmU4xv00nSrN4D/Nxk8aKro/E/LlQVkUJLbLL6qk2/Lxw5Oxs2m。”

请注意,密码哈希是使用
mkpasswd--method=sha-512
为密码
somerandompassword

生成的,我使用ansible模块“expect”找到了以下问题的解决方案


请重读我的问题。部署VM时,ansible无法访问它,因为在更改密码之前,它不允许您使用默认用户名和密码登录。您的问题是“有一个默认用户名,在初次登录时需要更改密码”,这不是您最后的评论所说的。您的问题没有说明您不能使用这些凭据登录。但是,您究竟如何登录?为什么不能使用默认凭据登录?为了避免混淆,下面是我第一次从系统ssh到VM时的日志~~~#sshdefault@X.X.X.X如果您不是授权用户,请立即退出密码:您需要立即更改密码(root强制)更改专家密码。(当前)UNIX密码:新密码:重新键入新密码:~~~如何通过Ansible处理此问题?这看起来像一条自定义消息,这是什么类型的图像,是谁创建的?这是一个电信VNF。。在linux中,强制用户在第一次登录时更改密码是正常的。如果您使用选项“-e”创建用户,则用户在初次登录时将被迫更改密码。
- name: Change password on initial login
  delegate_to: 127.0.0.1
  become: no
  expect:
    command: ssh {{ ansible_ssh_common_args }} {{ user_expert }}@{{ inventory_hostname }}
    timeout: 20
    responses:
      Password: "{{ user_expert_password }}"
      UNIX password: "{{ user_expert_password }}"
      New password: "{{ user_expert_password_new }}"
      new password:  "{{ user_expert_password_new }}"
      "\\~\\]\\$": exit
  register: status