-
Notifications
You must be signed in to change notification settings - Fork 123
/
Copy pathplaybook.yml
69 lines (61 loc) · 1.85 KB
/
playbook.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
- name: Configure new users and install packages
hosts: all
become: true
tasks:
- name: Create the script locally
copy:
content: |
#!/bin/bash
mount
dest: nice-script.sh
mode: 0755
delegate_to: localhost
- name: Create the directory on the remote machine
file:
path: "/better-place/{{ item }}"
state: directory
mode: '0755'
recurse: yes
loop: "{{ ansible_users }}"
vars:
ansible_users:
- john
- name: Create the user
user:
name: "{{ item }}"
uid: 1234
createhome: yes
home: "/better-place/{{ item }}"
loop: "{{ ansible_users }}"
vars:
ansible_users:
- john
- name: Grant sudo access without password
lineinfile:
dest: /etc/sudoers
line: "{{ item }} ALL=(ALL) NOPASSWD: /usr/bin/whoami"
validate: 'visudo -cf %s'
loop: "{{ ansible_users }}"
vars:
ansible_users:
- john
- name: Install packages
apt:
name: "{{ item }}"
state: present
loop:
- tmux
- vim
- name: Fetch latest Terraform version
uri:
url: "https://releases.hashicorp.com/terraform/"
return_content: yes
register: terraform_versions
- name: Parse latest Terraform version
set_fact:
latest_terraform_version: "{{ terraform_versions.content | regex_findall('terraform/([\\d.]+)/') | last }}"
- name: Download and install Terraform CLI
get_url:
url: "https://releases.hashicorp.com/terraform/{{ latest_terraform_version }}/terraform_{{ latest_terraform_version }}_linux_amd64.zip"
dest: /tmp/terraform.zip