-
Notifications
You must be signed in to change notification settings - Fork 203
Expand file tree
/
Copy pathmain.yml
More file actions
126 lines (108 loc) · 4.64 KB
/
main.yml
File metadata and controls
126 lines (108 loc) · 4.64 KB
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
---
# Make sure admin does not default to any taxonomy
- name: 'disable default context for admin'
shell: >
{{ foreman_provisioning_hammer }} user update --login admin --default-organization-id 0 --default-location-id 0
# Get the smart proxy ID of the local katello:
- name: 'get smart proxy id'
shell: >
{{ foreman_provisioning_hammer }} --output json proxy info --name {{ foreman_provisioning_proxy_name }}
register: foreman_provisioning_smart_proxy_json
- name: 'set smart proxy id'
set_fact:
foreman_provisioning_smart_proxy: "{{ foreman_provisioning_smart_proxy_json.stdout|from_json }}"
- name: 'refresh features'
shell: >
{{ foreman_provisioning_hammer }} proxy refresh-features --id {{ foreman_provisioning_smart_proxy.Id }}
- name: 'prepare hammer taxonomy options'
set_fact:
foreman_provisioning_hammer_taxonomy_params: "--organizations '{{ foreman_provisioning_organization }}' --locations '{{ foreman_provisioning_location }}'"
- name: 'Set taxonomies for proxy'
shell: >
{{ foreman_provisioning_hammer }} proxy update --id {{ foreman_provisioning_smart_proxy.Id }} {{ foreman_provisioning_hammer_taxonomy_params }}
# Compute Resource
- name: 'find compute resource'
shell: >
{{ foreman_provisioning_hammer }} compute-resource info --name "libvirt"
register: foreman_provisioning_compute_resource
ignore_errors: True
- name: 'create compute resource'
shell: >
{{ foreman_provisioning_hammer }} compute-resource create
--name "libvirt"
--url "qemu:///system"
--provider libvirt
--set-console-password false
{{ foreman_provisioning_hammer_taxonomy_params }}
when: foreman_provisioning_compute_resource.stderr.find('not found') != -1
- name: 'Find out if compute profile command is available'
shell: >
{{ foreman_provisioning_hammer }} compute-profile
register: foreman_provisioning_compute_profile_cmd
ignore_errors: True
- include_tasks: compute_profiles.yml
when: "'Error' not in foreman_provisioning_compute_profile_cmd.stderr"
# Domain
- name: 'find domain'
shell: >
{{ foreman_provisioning_hammer }} domain info --name "{{ foreman_provisioning_domain }}"
register: foreman_provisioning_domain_task
ignore_errors: True
- name: 'create domain'
shell: >
{{ foreman_provisioning_hammer }} domain create
--name {{ foreman_provisioning_domain }}
--dns-id {{ foreman_provisioning_smart_proxy.Id }}
{{ foreman_provisioning_hammer_taxonomy_params }}
when: foreman_provisioning_domain_task.stderr.find('not found') != -1
- name: 'update domain'
shell: >
{{ foreman_provisioning_hammer }} domain update
--name {{ foreman_provisioning_domain }}
--dns-id {{ foreman_provisioning_smart_proxy.Id }}
{{ foreman_provisioning_hammer_taxonomy_params }}
when: "'Error' not in foreman_provisioning_domain_task.stderr"
# Subnet
- name: 'find subnet'
shell: >
{{ foreman_provisioning_hammer }} subnet info --name "{{ foreman_provisioning_network }}/24"
register: foreman_provisioning_subnet
ignore_errors: True
- name: 'create subnet'
shell: >
{{ foreman_provisioning_hammer }} subnet create
--name "{{ foreman_provisioning_network }}/24"
--dhcp-id {{ foreman_provisioning_smart_proxy.Id }}
--dns-id {{ foreman_provisioning_smart_proxy.Id }}
--tftp-id {{ foreman_provisioning_smart_proxy.Id }}
--domains {{ foreman_provisioning_domain }}
--from {{ foreman_provisioning_dhcp_start }}
--to {{ foreman_provisioning_dhcp_end }}
--network {{ foreman_provisioning_network }}
--mask 255.255.255.0
--ipam DHCP
--gateway {{ foreman_provisioning_ip_address }}
--dns-primary {{ foreman_provisioning_ip_address }}
{{ foreman_provisioning_hammer_taxonomy_params }}
when: foreman_provisioning_subnet.stderr.find('not found') != -1
# Puppet
- name: 'find environment'
shell: >
{{ foreman_provisioning_hammer }} puppet-environment info --name "production"
register: foreman_provisioning_environment
ignore_errors: True
- name: 'create environment'
shell: >
{{ foreman_provisioning_hammer }} puppet-environment create
--name production
{{ foreman_provisioning_hammer_taxonomy_params }}
when: foreman_provisioning_environment.stderr.find('not found') != -1
- name: 'update environment' # it may have been automatically created by puppet if katello reports first
shell: >
{{ foreman_provisioning_hammer }} puppet-environment update
--name production
{{ foreman_provisioning_hammer_taxonomy_params }}
# query local nameservers http://projects.theforeman.org/issues/13419
- name: 'query local nameservers'
shell: >
{{ foreman_provisioning_hammer }} settings set --name query_local_nameservers --value true