-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathexec_playbook.sh
executable file
·78 lines (68 loc) · 2.37 KB
/
exec_playbook.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
#!/bin/bash -e
HOST1IP=$1
HOST2IP=$2
HOST3IP=$3
OST_SSH_KEY=$4
HOSTEDENGINE="ost-hc-basic-suite-master-engine"
DOMAIN=$(dnsdomainname)
MYHOSTNAME=$(hostname | sed s/_/-/g)
PLAYBOOK_PATH="/etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment"
VMPASS=123456
ENGINEPASS=123
sed \
-e "s,@HOST0@,${HOST1IP},g" \
-e "s,@HOST1@,${HOST2IP},g" \
-e "s,@HOST2@,${HOST3IP},g" \
-e "s,@HOSTEDENGINE@,${HOSTEDENGINE},g" \
-e "s,@DOMAIN@,${DOMAIN},g" \
< /root/gluster_inventory.yml.in \
> ${PLAYBOOK_PATH}/gluster_inventory.yml
MYADDR=$(\
/sbin/ip -4 -o addr show dev eth0 \
| awk '{split($4,a,"."); print a[1] "." a[2] "." a[3] "." a[4]}'\
| awk -F/ '{print $1}'\
)
echo "${MYADDR} ${MYHOSTNAME}.${DOMAIN} ${MYHOSTNAME}" >> /etc/hosts
HEGW=$(\
/sbin/ip -4 -o addr show dev eth0 \
| awk '{split($4,a,"."); print a[1] "." a[2] "." a[3] ".1"}'\
| awk -F/ '{print $1}'\
)
HEADDR=$(\
/sbin/ip -4 -o addr show dev eth0 \
| awk '{split($4,a,"."); print a[1] "." a[2] "." a[3] ".99"}'\
| awk -F/ '{print $1}'\
)
echo "${HEADDR} ${HOSTEDENGINE}.${DOMAIN} ${HOSTEDENGINE}" >> /etc/hosts
# Update the engine address in other hosts too, for auto-addition to work
ssh -i ${OST_SSH_KEY} root@${HOST2IP} \
"echo "${HEADDR} ${HOSTEDENGINE}.${DOMAIN} ${HOSTEDENGINE}" >> /etc/hosts"
ssh -i ${OST_SSH_KEY} root@${HOST3IP} \
"echo "${HEADDR} ${HOSTEDENGINE}.${DOMAIN} ${HOSTEDENGINE}" >> /etc/hosts"
sed \
-e "s,@GW@,${HEGW},g" \
-e "s,@ADDR@,${HEADDR},g" \
-e "s,@VMPASS@,${VMPASS},g" \
-e "s,@ENGINEPASS@,${ENGINEPASS},g" \
-e "s,@HOSTEDENGINE@,${HOSTEDENGINE},g" \
-e "s,@DOMAIN@,${DOMAIN},g" \
-e "s,@HOST1-IP@,${HOST1IP},g" \
-e "s,@HOST2-IP@,${HOST2IP},g" \
-e "s,@HOST3-IP@,${HOST3IP},g" \
-e "s,@MYHOSTNAME@,${MYHOSTNAME},g" \
< /root/ohc_he_gluster_vars.json.in \
> ${PLAYBOOK_PATH}/ohc_he_gluster_vars.json
# Temporary hack till gluster-ansible is updated
sed -i '/gather_facts: no/d' ${PLAYBOOK_PATH}/tasks/gluster_deployment.yml
cd ${PLAYBOOK_PATH}
export ANSIBLE_HOST_KEY_CHECKING=False
ansible-playbook -i gluster_inventory.yml \
hc_deployment.yml \
--private-key ${OST_SSH_KEY} \
--extra-vars='@ohc_he_gluster_vars.json'
RET_CODE=$?
if [ ${RET_CODE} -ne 0 ]; then
echo "ansible deployment failed with status ${RET_CODE}."
exit ${RET_CODE}
fi
rm -rf /var/cache/yum/* /var/cache/dnf/*