ElaoInfra.users

Ansible Role Platforms License

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

ELAO (http://www.elao.com/)

About

Setup of users accounts and ssh keys

Install
ansible-galaxy install ElaoInfra.users
GitHub repository
License
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