forked from redhat-cop/casl-ansible
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathose-provision.yml
116 lines (105 loc) · 4.05 KB
/
ose-provision.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
---
# Provision OpenStack instances
- hosts: localhost
pre_tasks:
- include: roles/openstack-create/pre_tasks/pre_tasks.yml
- include: roles/common/pre_tasks/pre_tasks.yml
- include: roles/subscription-manager/pre_tasks/pre_tasks.yml
roles:
- role: common
- role: openshift-common
# Provision Master
- role: openstack-create
type: "master"
image_name: "{{ openshift_openstack_image_name }}"
security_groups: "{{ openshift_openstack_master_security_groups }}"
key_name: "{{ openstack_key_name }}"
flavor_name: "{{ openshift_openstack_flavor_name }}"
register_host_group: "masters,openshift"
node_count: "{{ openshift_master_count }}"
disk_volume: "{{ openshift_storage_disk_volume }}"
volume_size: "{{ openshift_openstack_master_storage_size }}"
# Provision Nodes
- role: openstack-create
type: "node"
image_name: "{{ openshift_openstack_image_name }}"
security_groups: "{{ openshift_openstack_node_security_groups }}"
key_name: "{{ openstack_key_name }}"
flavor_name: "{{ openshift_openstack_flavor_name }}"
register_host_group: "nodes,openshift"
node_count: "{{ openshift_node_count }}"
disk_volume: "{{ openshift_storage_disk_volume }}"
volume_size: "{{ openshift_openstack_node_storage_size }}"
# Provision NFS
- role: openstack-create
type: "nfs"
image_name: "{{ openshift_openstack_image_name }}"
security_groups: "{{ openshift_openstack_nfs_security_groups }}"
key_name: "{{ openstack_key_name }}"
flavor_name: "{{ openshift_openstack_flavor_name }}"
register_host_group: "nfs,openshift"
node_count: "1"
disk_volume: "{{ openshift_storage_disk_volume }}"
volume_size: "{{ openshift_openstack_master_storage_size }}"
# Provision DNS
- include: playbooks/dns-provision.yaml
- hosts: openshift
remote_user: "cloud-user"
vars:
ansible_ssh_user: cloud-user
tasks:
- name: "Enable direct root access"
shell: "cat ~/.ssh/authorized_keys | sudo tee /root/.ssh/authorized_keys >/dev/null"
- hosts: all:!dns:!localhost
pre_tasks:
- include: roles/common/pre_tasks/pre_tasks.yml
roles:
- role: hostnames
- hosts: all:!localhost
roles:
- { role: subscription-manager, when: hostvars.localhost.rhsm_register, tags: 'subscription-manager', ansible_sudo: true }
- hosts: localhost
pre_tasks:
- include: roles/common/pre_tasks/pre_tasks.yml
- name: "Generate dns-server views"
include: playbooks/dns_dual_view.yaml
- name: "Generate dns records"
include: playbooks/dns_records.yaml
- hosts: dns
pre_tasks:
- name: "Include the generated views"
include_vars: /tmp/named_views.yaml
delegate_to: localhost
- name: "Include generated dns records"
include_vars: /tmp/records.yaml
delegate_to: localhost
roles:
- role: dns-server
- role: dns
# Use newly configured DNS server for this container ...
- hosts: localhost
tasks:
- name: "Edit /etc/resolv.conf in container"
shell: "sed '0,/.*nameserver.*/s/.*nameserver.*/nameserver {%for host in groups['dns']%}{{ hostvars[host].dns_public_ip }}{% endfor %}\\n&/' /etc/resolv.conf > /tmp/resolv.conf && /bin/cp -f /tmp/resolv.conf /etc/resolv.conf"
# Install and configure OpenShift
- hosts: openshift:!dns
tasks:
- name: "Edit /etc/resolv.conf on masters/nodes"
lineinfile:
state: present
dest: /etc/resolv.conf
regexp: "nameserver {%for host in groups['dns']%} {{ hostvars[host].dns_private_ip }} {% endfor %}"
line: "nameserver {%for host in groups['dns']%} {{ hostvars[host].dns_private_ip }} {% endfor %}"
insertafter: search*
- name: "Include DHCP/DNS workaround for OSE 3.2"
lineinfile:
state: present
dest: /etc/sysconfig/network
regexp: "IP4_NAMESERVERS={%for host in groups['dns']%}{{ hostvars[host].dns_private_ip }}{% endfor %}"
line: "IP4_NAMESERVERS={%for host in groups['dns']%}{{ hostvars[host].dns_private_ip }}{% endfor %}"
roles:
- { role: docker, tags: 'docker' }
- { role: openshift-prep, tags: 'openshift-prep', ansible_sudo: true }
- hosts: localhost
roles:
- openshift-install