ansible/host: Reload NFS exports after updating
[autocluster.git] / ansible / host / autocluster_setup_centos7.yml
1 ---
2 - name: Set up the host machine for autocluster
3   connection: local
4   hosts: localhost
5
6   tasks:
7   - name: dependencies for Vagrant libvirt plugin
8     package:
9       name:
10       - libvirt-devel
11
12   - name: install latest vagrant rpm
13     package:
14       name: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.rpm
15       state: present
16
17   - name: install vagrant plugins
18     command: vagrant plugin install {{item}}
19     with_items:
20     - vagrant-libvirt
21     - vagrant-proxyconf
22
23   - name: dependencies for virt_pool module
24     package:
25       name:
26       - libvirt-python
27       - python-lxml
28       state: present
29
30   - name: ensure /virtual/autocluster exists
31     file:
32       path: /virtual/autocluster
33       state: directory
34
35   - name: ensure autocluster storage pool exists
36     virt_pool:
37       name: autocluster
38       state: present
39       autostart: yes
40       xml: >
41         <pool type='dir'>
42           <name>autocluster</name>
43             <target>
44               <path>/virtual/autocluster</path>
45             </target>
46         </pool>
47
48   # It seems that you can't force the pool to be active above when creating it!
49   - name: ensure autocluster storage pool is active
50     virt_pool:
51       name: autocluster
52       state: active
53
54   - name: install NFS server
55     package:
56       name: nfs-utils
57       state: present
58
59   - name: enable/start NFS server
60     service:
61       name: "{{item}}"
62       enabled: yes
63       state: started
64     with_items:
65     - nfs
66     - nfslock
67
68   # This was tough to figure out...
69   - name: allow NFS through firewall
70     firewalld:
71       service: "{{item}}"
72       zone: public
73       state: enabled
74       permanent: yes
75       immediate: yes
76     with_items:
77     - mountd
78     - rpc-bind
79     - nfs3
80
81   # Need to add a restart or "exportfs -r"
82   - name: export /home via NFS
83     template:
84       # This can be parameterised later when there are host onfig variables
85       src:  home_exports.j2
86       dest: /etc/exports.d/autocluster-home.exports
87     notify:
88       - reload NFS exports
89
90   - name: ensure an NTP server is installed
91     package:
92       name: chrony
93       state: present
94
95   - name: allow NTP through firewall
96     firewalld:
97       service: ntp
98       zone: public
99       state: enabled
100       permanent: yes
101       immediate: yes
102
103   - name: enable/start NTP server
104     service:
105       name: chronyd
106       enabled: yes
107       state: started
108
109   - name: ensure an HTTP server is installed
110     package:
111       name: httpd
112       state: present
113
114   - name: enable/start HTTP server
115     service:
116       name: httpd
117       enabled: yes
118       state: started
119
120   - name: allow HTTP through firewall
121     firewalld:
122       service: http
123       zone: public
124       state: enabled
125       permanent: yes
126       immediate: yes
127
128   - name: ensure /home/mediasets/ directory exists
129     file:
130       path: /home/mediasets
131       state: directory
132
133   - name: ensure HTTP link for mediasets directory
134     file:
135       src: /home/mediasets
136       path: /var/www/html/mediasets
137       state: link
138       force: yes
139
140   - name: ensure semanage command is available
141     package:
142       name: policycoreutils-python
143       state: present
144
145   - name: selinux setup for /home/mediasets
146     command: "{{item}}"
147     with_items:
148     - chcon -R -t httpd_user_content_t /home/mediasets
149     - semanage boolean -m -1 httpd_unified
150     - semanage boolean -m -1 httpd_enable_homedirs
151
152   - name: install Python dependencies for Ansible Jinja templating
153     package:
154       name: python-netaddr
155       state: present
156
157   handlers:
158   - name: reload NFS exports
159     command: exportfs -r