shell 如何通过Ansible延长用户的帐户到期日期?

6tqwzwtp  于 2023-05-01  发布在  Shell
关注(0)|答案(1)|浏览(244)

我对Ansible非常陌生(仍在学习)。
我们有一个脚本来创建新的用户,提供sudo访问,定义首次登录时要更改的密码,用户详细信息,帐户到期日期,然后定义密码到期信息:

---
- name: Create user with key
  hosts: all
  user: ansible
  sudo: True

  vars:

    password: $6$VhuG16emtCgF0zrK$dzE8swYNnLQeUkdgcgpTqr0stY8enepxcske8ATLAERjORpKkqYcGD6r6ssTNe4EdwwRs2UjjiAM/8tWCeEnN/
    raw: Password@1

  tasks:

  - name: Create New User
    user: name=TestUser comment="Test User" createhome=yes groups=wheel state=present password={{ password }}
  - command: chage -E 2023-10-18 TestUser
  - command: chage -d 0 TestUser
  - command: chage -M 120 TestUser
    register: newuser

我们将使用-i在playbook命令中定义主机,然后使用主机文件的名称(包含将在其上创建用户帐户的机器的IP),例如:

ansible-playbook create-newuser1.yml -i hosts.servers

目前,要扩展用户帐户,我们必须访问每个主机并在本地扩展帐户:

sudo chage -E 2023-12-28 TestUser

对于Ansible中的“Maven”来说,这听起来像是一个直截了当的问题,但我无法找到有关如何使用上述类似脚本的信息(我尝试调整上述脚本并失败)来延长现有用户帐户的到期日期并在文件或playbook命令中定义主机。
尝试搜索user module,找不到任何东西。在Managing user accounts using Ansible playbooks中也有快速浏览。
还在挣扎

更新1

刚刚有一个脑电波,我只需要创建一个yml文件(名为:extend-TestUser.yml)说明:

- command: chage -E 2023-12-28 TestUser

然后声明此命令:

ansible-playbook extend-TestUser.yml -i hosts.servers
fivyi3re

fivyi3re1#

您可能会查看文档user module – Manage user accounts和一个最小的示例Playbook

---
- hosts: test
  become: true
  gather_facts: false

  vars:

    PASSWORD: 'Password@1'

  tasks:

  - name: Gather date and time only
    setup:
      gather_subset:
        - "date_time"
        - "!min"
    when: ansible_date_time is not defined

  - name: Configure or update user
    user:
      name: "TestUser"
      password: "{{ PASSWORD | password_hash('sha512') }}"
      comment: "Test User"
      createhome: true
      group: "DefaultGroup"
      groups: wheel
      state: present
      expires: "{{ '%s' | strftime( (ansible_date_time.epoch | int) + (86400 * 120)  ) }}"

它显示了如何将到期日期从当前日期延长120天和/或设置新密码。

感谢

相关问题