# Bootstrap machines
# Best run as user root for example:
# ansible-playbook bootstrap.yml -i hosts -k -K --extra-vars "hosts=newhost.domain.com user=admin"
- hosts: '{{ hosts }}'
remote_user: '{{ user }}'
sudo: yes
tasks:
- name: Create Perforce User account
user:
name: perforce
shell: /bin/bash
home: /p4
become: yes
- name: Allow perforce user to have passwordless sudo
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^%perforce'
line: '%perforce ALL=(ALL) NOPASSWD: ALL'
validate: visudo -cf %s
become: yes
- name: Make sure .ssh exists
file:
path: /p4/.ssh
state: directory
mode: 0700
become: true
become_user: perforce
# Copy ssh keys and authorize so user perforce can ssh between boxes
- name: Copy ssh private key
copy:
src: private/id_rsa
dest: /p4/.ssh/
mode: 0600
become: true
become_user: perforce
- name: Set authorized key for perforce
authorized_key:
user: perforce
state: present
key: "{{ lookup('file', 'private/id_rsa.pub') }}"
become: true
become_user: perforce