Creating a new user and password with Ansible

后端 未结 22 1509
迷失自我
迷失自我 2020-12-22 17:00

I have an ansible task which creates a new user on ubuntu 12.04;

- name: Add deployment user
    action: user name=deployer password=mypassword
22条回答
  •  清酒与你
    2020-12-22 17:44

    The purpose of the role in this answer is to generate random password for new_user_name and expire the password immediately. The new_user_name is required to change the password on his/her first logon.

    create_user.yml:

    ---
    # create_user playbook
    
    - hosts: your_host_group
      become: True
      user: ansible
    
      roles:
        - create_user
    

    roles/create_user/tasks/main.yml:

    ---
    # Generate random password for new_user_name and the new_user_name
    # is required to change his/her password on first logon. 
    
    - name: Generate password for new user
      shell: makepasswd --chars=20
      register: user_password
    
    - name: Generate encrypted password
      shell: mkpasswd --method=SHA-512 {{ user_password.stdout }}
      register: encrypted_user_password
    
    - name: Create user account
      user: name={{ new_user_name }}
            password={{ encrypted_user_password.stdout }}
            state=present
            append=yes
            shell="/bin/bash"
            update_password=always
      when: new_user_name is defined and new_user_name in uids
      register: user_created
    
    - name: Force user to change password
      shell: chage -d 0 {{ new_user_name }}
      when: user_created.changed
    
    - name: User created
      debug: msg="Password for {{ new_user_name }} is {{ user_password.stdout }}"
      when: user_created.changed
    

    When you want to create a new user:

    ansible-playbook -i hosts.ini create_user.yml --extra-vars "new_user_name=kelvin"
    

提交回复
热议问题