-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathprep_ansible.sh
executable file
·84 lines (68 loc) · 2.69 KB
/
prep_ansible.sh
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
#!/bin/bash
source "common.sh"
#
# Clone openshift-kni/baremetal-deploy Ansible tool if not already present
#
if [[ ! -d baremetal-deploy ]]; then
printf "\nCloning openshift-kni/baremetal-deploy Ansible tool...\n\n"
git clone https://github.com/openshift-kni/baremetal-deploy.git
sed -i "s/remote_user=kni/remote_user=$KNI_USERNAME/" baremetal-deploy/ansible-ipi-install/ansible.cfg
fi
if [[ ! -f "$PULL_SECRET_PATH" ]]; then
echo "ERROR: $PULL_SECRET_PATH not found!"
exit 1
fi
#
# Generate inventory hosts file
#
HOSTS_FILE="[all:vars]\n\
build=\"$OCP_SOURCE\"\n\
cache_enabled=True\n\
dir=$CLUSTER_CONFIGS_DIR\n\
baremetal_bridge=$BM_BRIDGE\n\
provisioning_bridge=$PROV_BRIDGE\n\
prov_ip=172.22.0.3\n\
prov_nic=$PROV_INTF\n\
masters_prov_nic=enp1s0\n\
pub_nic=$BM_INTF\n\
version=\"$OCP_VERSION\"\n\
redfish_inspection=False\n\
\n\
domain=\"$CLUSTER_DOMAIN\"\n\
cluster=\"$CLUSTER_NAME\"\n\
network_type=\"$NETWORK_TYPE\"\n\
extcidrnet=\"$BM_CIDR\"\n\
apivip=\"$API_VIP\"\n\
dnsvip=\"$DNS_VIP\"\n\
ingressvip=\"$INGRESS_VIP\"\n\
hardware_profile=libvirt\n\
numworkers=\"$NUM_WORKERS\"\n\
nummasters=\"$NUM_MASTERS\"\n\
pullsecret='$(cat "$PULL_SECRET_PATH")'\n"
HOSTS_FILE="$HOSTS_FILE\n[masters]\n"
for i in $(seq 0 $((NUM_MASTERS - 1))); do
HOSTS_FILE="${HOSTS_FILE}master-$i name=master-$i role=master ipmi_user=ADMIN ipmi_password=ADMIN ipmi_address=$BM_GW_IP ipmi_port=624$i provision_mac=52:54:00:82:68:4$i root_device_hint=deviceName root_device_hint_value=/dev/vda\n"
done
HOSTS_FILE="$HOSTS_FILE\n[workers]\n"
for i in $(seq 0 $((NUM_WORKERS - 1))); do
HOSTS_FILE="${HOSTS_FILE}worker-$i name=worker-$i role=worker ipmi_user=ADMIN ipmi_password=ADMIN ipmi_address=$BM_GW_IP ipmi_port=625$i provision_mac=52:54:00:82:68:5$i root_device_hint=deviceName root_device_hint_value=/dev/vda\n"
done
HOSTS_FILE="$HOSTS_FILE\n[provisioner]\n\
provisioner.$CLUSTER_NAME.$CLUSTER_DOMAIN ansible_connection=local\n"
if [[ "$CREATE_LOCAL_REG" == "true" ]]; then
HOSTS_FILE="$HOSTS_FILE\n[registry_host]\n\
provisioner.$CLUSTER_NAME.$CLUSTER_DOMAIN ansible_connection=local\n"
HOSTS_FILE="$HOSTS_FILE\n[registry_host:vars]\n\
cert_country=US\n\
cert_state=MA\n\
cert_locality=Westford\n\
cert_organization=Red Hat\n\
cert_organizational_unit=CTO Networking\n\
registry_dir=$PROJECT_DIR/registry\n"
fi
echo -e "$HOSTS_FILE" > baremetal-deploy/ansible-ipi-install/inventory/hosts
if [[ -z "$PROV_INTF" ]] || [[ -z "$BM_INTF" ]]; then
ansible-playbook -i baremetal-deploy/ansible-ipi-install/inventory/hosts baremetal-deploy/ansible-ipi-install/playbook.yml --skip-tags=network
else
ansible-playbook -i baremetal-deploy/ansible-ipi-install/inventory/hosts baremetal-deploy/ansible-ipi-install/playbook.yml
fi