# Bootstrap machines
# Best run as user root for example:
# ansible-playbook bootstrap.yml -i hosts -k -K --extra-vars "hosts=bench_clients user=root"
- 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
- name: Create a directory for perforce workspaces on /home
file:
path: /home/p4
state: directory
owner: perforce
become: true
# - name: Create a directory for perforce workspaces on /p4ws
# file:
# path: /p4ws/p4
# state: directory
# owner: perforce
# become: true
# - name: Create a directory for perforce workspaces on /p4ws_new
# file:
# path: /p4ws_new/p4
# state: directory
# owner: perforce
# become: true
# - name: Directory for ram disk
# file:
# path: /ram/disk
# state: directory
# owner: perforce
# become: true
# - name: Mount ram disk
# command: mount -t tmpfs -o size=50G tmpfs /ram/disk
# become: true