ElaoInfra.users
Ansible Role: Users
This role will assume the setup of users accounts and ssh keys:
It's part of the ELAO Ansible stack but can be used as a stand alone component.
Requirements
- Ansible 1.8.0+
Dependencies
None.
Installation
Ansible 2+
Using ansible galaxy cli:
ansible-galaxy install elao.users,2.0
Using ansible galaxy requirements file:
- src: elao.users
version: 2.0
Ansible 1 (no longer maintained)
Using ansible galaxy cli:
ansible-galaxy install elao.users,1.0
Using ansible galaxy requirements file:
- src: elao.users
version: 1.0
Role Handlers
None
Role Variables
| Name | Default | Type | Description |
|---|---|---|---|
elao_users |
Array | Array | List of unix users. |
elao_users.name |
- | String | Username. |
elao_users.group |
- | String | User's primary group. |
elao_users.groups |
- | Array | Array of user's secondary groups. |
elao_users_groups |
- | Array | Array of groups to be created. |
elao_users_groups.name |
- | String | Name of the group to manage. |
elao_users_groups.system |
- | Boolean | If yes, indicates that the group created is a system group. |
elao_users_authorized_keys |
Array | Array | List of authorized ssh keys |
elao_users_authorized_keys.user |
- | String | Username. |
elao_users_authorized_keys.keys |
Array | Array | Collection of user's ssh keys. |
elao_users_authorized_keys.options |
Array | Array | List of ssh options for the user. |
Defining users
The elao_userskey will allow to define our users by:
- A name
- A main group
- Some secondary groups
- Some exclusive authorized keys
- Some private/public keys
Example
elao_users:
- name: foo
group: users
groups: ['sudo']
authorized_keys:
- "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
- "no-port-forwarding,from=\"10.0.1.*\" {{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}
keys:
- name: id_rsa
public: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
private: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
gpg_keys:
- key: FOOOBAAR
public: "{{ lookup('file', playbook_dir ~ '/files/users/gpg_keys/[email protected]') }}"
secret: "{{ lookup('file', playbook_dir ~ '/files/users/gpg_keys/[email protected]') }}"
Creating group
You can create your own group by using the elao_users_groups by specifying:
- A name
- If the group is a "system group"
Example
elao_users_groups:
- name: ops
system: false
Managing users keys
Example
elao_users_authorized_keys:
- user: gateway
keys:
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
state: absent
- "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
options:
- no-pty
- no-X11-forwarding
- user: root
keys:
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
- user: elao
keys:
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
- key: "{{ lookup('file', playbook_dir ~ '/files/users/keys/[email protected]') }}"
Example playbook
- hosts: servers
roles:
- { role: elao.users }
Licence
MIT
Author information
Install
ansible-galaxy install ElaoInfra.usersLicense
Unknown
Downloads
203
Owner
All of those roles aren't maintained anymore and we strongly encourage you to switch to our new (maintained and tested) Ansible stack: https://github.com/manala
