Skip to content

Instantly share code, notes, and snippets.

@dartov
Created April 21, 2015 07:21
Show Gist options
  • Save dartov/21506ef6a3304051223f to your computer and use it in GitHub Desktop.
Save dartov/21506ef6a3304051223f to your computer and use it in GitHub Desktop.
Adding power user with ansible
#
# Simple playbook to create passwordless sudo user with pubkey authentication for future ansible use
# This assumes you know some other user login/pass
#
# Three simple steps:
# 1. Create some public key: ssh-keygen -t rsa -C "me@example.com"
# 2. Add some inventory into inventory file
# 3. Run playbook: ansible-playbook -i inventory create_user.yml -e "createuser=myuser pubkey_file=~/.ssh/my_pubkey.pub" -u someotheruser -k
#
---
- hosts: all
# user: root
#vars:
# pubkey_file: '~/.ssh/id_dsa.pub'
# createuser: 'ansibleremote'
tasks:
- name: Setup | create user
user: name={{ createuser }}
sudo: true
- name: Setup | authorized key upload
authorized_key: user={{ createuser }}
key="{{ lookup('file', pubkey_file) }}"
path='/home/{{ createuser }}/.ssh/authorized_keys'
manage_dir=no
sudo: true
- name: Setup | sudoers file
template: src=sudoer.j2
dest='/etc/sudoers.d/ansible_sudoer_{{ createuser }}'
mode=0440
validate='visudo -cf %s'
sudo: true
{{ createuser }} ALL=(ALL) NOPASSWD: ALL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment