-
Notifications
You must be signed in to change notification settings - Fork 32
/
bootstrap.yml
198 lines (181 loc) · 5.04 KB
/
bootstrap.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
---
- hosts: all
vars:
alpine_packages:
- alpine-sdk
- libffi-dev
- openssl-dev
- py-setuptools
ansible_ver: 2.6.2
debian_packages:
- build-essential
- libffi-dev
- libssl-dev
- python-dev
- python-pip
- python-setuptools
install_ansible: false
pri_domain_name: vagrant.local
redhat_packages:
- gmp-devel
- libffi-devel
- openssl-devel
- python-crypto
- python-devel
- python-pip
- python-setuptools
- redhat-rpm-config
suse_packages:
- gmp-devel
- libffi-devel
- openssl-devel
- python-crypto
- python-devel
- python-pip
- python-setuptools
roles: []
tasks:
# Update apt-cache to ensure up to date
- name: Updating Apt Cache (Debian)
apt:
update_cache: true
cache_valid_time: 3600
become: true
when: ansible_os_family == "Debian"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (Alpine)
apk:
name: "{{ alpine_packages }}"
state: present
become: true
when: ansible_os_family == "Alpine"
- name: Installing Python Packages (Alpine)
apk:
name: ["py-pip", "python-dev"]
state: present
become: true
when: >
ansible_os_family == "Alpine" and
ansible_distribution_version < "3.5"
- name: Installing Python Packages (Alpine)
apk:
name: ["py2-pip", "python2-dev"]
state: present
become: true
when: >
ansible_os_family == "Alpine" and
ansible_distribution_version >= "3.5"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (Debian)
apt:
name: "{{ debian_packages }}"
state: present
become: true
when: >
install_ansible and
ansible_os_family == "Debian"
- name: Installing EPEL Repo (RedHat)
yum:
name: epel-release
state: present
become: true
when: >
install_ansible and
ansible_os_family == "RedHat" and
ansible_distribution != "Fedora"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (RedHat)
yum:
name: "{{ redhat_packages }}"
state: present
become: true
when: >
install_ansible and
ansible_os_family == "RedHat" and
ansible_distribution != "Fedora"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (Fedora)
dnf:
name: python-dnf
state: present
become: true
when: >
install_ansible and
ansible_os_family == "RedHat" and
ansible_distribution == "Fedora"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (Fedora)
dnf:
name: "{{ redhat_packages }}"
state: present
become: true
when: >
install_ansible and
ansible_os_family == "RedHat" and
ansible_distribution == "Fedora"
# Install pre-reqs for Ansible install
- name: Installing Ansible Pre-Reqs (openSUSE)
zypper:
name: "{{ suse_packages }}"
state: present
become: true
when: >
install_ansible and
ansible_os_family == "Suse"
# Upgrading these packages to ensure a successful Ansible install
- name: Updating Python Modules
block:
- name: Update Python Modules
pip:
name: ["pip", "cffi", "pyOpenSSL"]
state: latest
become: true
when: ansible_os_family != "Windows"
rescue:
- name: Downloading Pip Installer
get_url:
url: https://bootstrap.pypa.io/get-pip.py
dest: /tmp/get-pip.py
- name: Installing Python Pip
command: python /tmp/get-pip.py
become: true
when: install_ansible
# Install Ansible to run Ansible related tasks within guest
- name: Installing Ansible
pip:
name: ansible
state: present
version: "{{ ansible_ver }}"
become: true
when: >
install_ansible and
ansible_os_family != "Windows"
- name: Enabling Windows AutoLogon
win_regedit:
path: HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
name: "{{ item['name'] }}"
data: "{{ item['data'] }}"
type: "{{ item['type'] }}"
loop:
- name: AutoAdminLogon
data: 1
type: String
- name: AutoAdminLogonCount
data: 0
type: dword
- name: DefaultUsername
data: vagrant
type: String
- name: DefaultPassword
data: vagrant
type: String
register: windows_autologon
when: ansible_os_family == "Windows"
- name: Reboot Windows after AutoLogon
win_reboot:
when: windows_autologon['changed']
- name: Ensure Chocolatey is installed
win_chocolatey:
name: chocolatey
state: present
when: ansible_os_family == "Windows"