-
Notifications
You must be signed in to change notification settings - Fork 138
/
bootstrap-crowbar-nodes.yml
70 lines (61 loc) · 2.05 KB
/
bootstrap-crowbar-nodes.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
#
# (c) Copyright 2018 SUSE LLC
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
---
- import_playbook: _create-vcloud-inventory.yml
- name: Bootstrap crowbar cloud nodes
hosts: cloud_virt_hosts
any_errors_fatal: true
remote_user: root
# NOTE: don't gather facts before nodes become accessible
gather_facts: false
vars:
task: "deploy"
tasks:
- block:
- name: Wait for cloud nodes to be accessible
wait_for:
host: "{{ ansible_ssh_host }}"
port: 22
search_regex: OpenSSH
state: started
delay: 10
register: _connection
- name: Fail if one or more hosts are unreacheable
fail:
when: hostvars[item]['_connection']['failed']
loop: "{{ ansible_play_hosts_all }}"
run_once: True
- name: Gather facts
setup:
- include_role:
name: setup_root_partition
# FIXME: remove everything but eth0 ifcfg files from base image
# This is needed because crowbar_register fails if there are
# ifcfg files configured for non-existing interfaces
- name: Remove unused ifcfg files
shell: rm --force --verbose /etc/sysconfig/network/ifcfg-eth[1-9]*
rescue:
- include_role:
name: rocketchat_notify
apply:
delegate_to: "{{ cloud_env }}"
vars:
rc_action: "finished"
rc_state: "Failed"
when: rc_notify
- name: Stop if something failed
fail:
msg: "{{ task }} failed."