Skip to content

Instantly share code, notes, and snippets.

@Kami-no
Created March 27, 2019 08:07
Show Gist options
  • Save Kami-no/57e7e5ba6d1d49a314b17f05467629bb to your computer and use it in GitHub Desktop.
Save Kami-no/57e7e5ba6d1d49a314b17f05467629bb to your computer and use it in GitHub Desktop.
# ansible-playbook useradd.yml -e user_name=user -i hproduction -l any.host.net
---
- hosts:
- all
gather_facts: false
become: true
# vars:
# user_name: ""
# user_state: ""
tasks:
- name: Alter default shell
lineinfile:
dest: /etc/default/useradd
regexp: '^SHELL'
line: 'SHELL=/bin/bash'
tags:
- useradd_system
- name: Force home-dir creation
lineinfile:
dest: /etc/login.defs
regexp: '^CREATE_HOME'
line: 'CREATE_HOME yes'
tags:
- useradd_system
- name: ssh dir in skeleton
file:
path: /etc/skel/.ssh
state: directory
mode: 0700
tags:
- useradd_system
- name: Check if authorized_keys file exists in skeleton
stat:
path: /etc/skel/.ssh/authorized_keys
register: stat_system
tags:
- useradd_system
- name: Touch authorized_keys in skeleton
file:
path: /etc/skel/.ssh/authorized_keys
state: touch
mode: 0600
when:
- stat_system.stat.exists == False
tags:
- useradd_system
- name: Import SSH data
include_vars:
file: "ssh.yml"
when:
- user_name is defined
tags:
- useradd_user
- name: Add user
user:
name: "{{ user_name }}"
shell: /bin/bash
password: "{{ ssh_users[user_name]['pass'] }}"
groups:
- adm
- sudo
when:
- user_name is defined
tags:
- useradd_user
- name: Make .ssh dir
file:
path: "/home/{{ user_name }}/.ssh"
owner: "{{ user_name }}"
group: "{{ user_name }}"
state: directory
mode: 0700
when:
- user_name is defined
tags:
- useradd_user
- name: Check if authorized_keys file exists
stat:
path: "/home/{{ user_name }}/.ssh/authorized_keys"
register: stat_user
when:
- user_name is defined
tags:
- useradd_user
- name: Make authorized_keys file
file:
path: "/home/{{ user_name }}/.ssh/authorized_keys"
owner: "{{ user_name }}"
group: "{{ user_name }}"
state: touch
mode: 0644
when:
- user_name is defined
- stat_user.stat.exists == False
tags:
- useradd_user
- name: Upload user key
lineinfile:
dest: "/home/{{ user_name }}/.ssh/authorized_keys"
line: "{{ ssh_users[user_name]['key'] }}"
when:
- user_name is defined
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment