/
postinst
182 lines (162 loc) · 7.64 KB
/
postinst
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#!/bin/bash
set -e
echo "running post install"
HOST_IP_LIST=`ifconfig | sed -n -e 's/:127\.0\.0\.1 //g' -e 's/ *inet addr:\([0-9.]\+\).*/\1/gp'`
HOST_IP=`echo $HOST_IP_LIST | cut -d' ' -f1`
if [ -f /opt/contrail/contrail_server_manager/IP.txt ];
then
HOST_IP=$(cat /opt/contrail/contrail_server_manager/IP.txt)
fi
echo $HOST_IP
DOMAIN=`hostname -d`
rel=`lsb_release -r`
# Stage I - Install required packages
easy_install argparse
easy_install paramiko==1.17.0
easy_install pycrypto
easy_install ordereddict
easy_install pycurl
pip install xmltodict
# Stage 2: Copy config files into place
# Copy cobbler pxesystem template file for esxi
mv /etc/cobbler/pxe/pxesystem_esxi.template /etc/cobbler/pxe/pxesystem_esxi.template-save
cp /etc/contrail_smgr/cobbler/pxesystem_esxi.template /etc/cobbler/pxe
# Copy cobbler boot.cfg template file for esxi5.5
cp -f /etc/contrail_smgr/cobbler/bootcfg_esxi55.template /etc/cobbler/pxe
# Backup all the distro_signatures files
if [ -f /etc/cobbler/distro_signatures.json ]; then
mv /etc/cobbler/distro_signatures.json /etc/cobbler/distro_signatures.json-save
fi
if [ -f /var/lib/cobbler/distro_signatures.json ]; then
mv /var/lib/cobbler/distro_signatures.json /var/lib/cobbler/distro_signatures.json-save
fi
cp /etc/contrail_smgr/cobbler/distro_signatures.json-esxi55 /etc/cobbler/distro_signatures.json
cp /etc/contrail_smgr/cobbler/distro_signatures.json-esxi55 /var/lib/cobbler/distro_signatures.json
cp /etc/contrail_smgr/smgr.conf /etc/apache2/sites-available/
cp -r /etc/contrail_smgr/kickstarts /var/www/html/
if [ -f /etc/cobbler/named.template ]; then
cp /etc/cobbler/named.template /etc/cobbler/named.template.orig
fi
cp /etc/contrail_smgr/cobbler/named.template.u.sample /etc/cobbler/named.template
if [ -f /etc/bind/named.conf.options ]; then
cp /etc/bind/named.conf.options /etc/bind/named.conf.options.orig
fi
cp /etc/contrail_smgr/cobbler/named.conf.options.u.sample /etc/bind/named.conf.options
#cp /etc/contrail_smgr/sendmail.cf /etc/mail/
#mv /etc/ntp.conf /etc/ntp.conf.default
#cp /etc/contrail_smgr/ntp.conf /etc/ntp.conf
chown -R puppet:puppet /var/log/contrail-server-manager/provision
# Copying the specific puppet conf files needed for provisioning:
cp /etc/contrail_smgr/puppet/auth.conf /etc/puppet/
cp /etc/contrail_smgr/puppet/autosign.conf /etc/puppet/
cp /etc/contrail_smgr/puppet/fileserver.conf /etc/puppet/
cp /etc/contrail_smgr/puppet/hiera.yaml /etc/puppet/
cp /etc/contrail_smgr/puppet/puppet.conf /etc/puppet/
cp -r /etc/contrail_smgr/puppet/environments /etc/puppet/
cp -u /etc/contrail_smgr/puppet/puppet_init_rd /srv/www/cobbler/aux/puppet
# Stage 3 : Setting configs manually
# Adding server and Public DNS to /etc/resolv.conf if not present
set +e
grep "nameserver $HOST_IP" /etc/resolv.conf
if [ $? != 0 ]; then
echo "nameserver $HOST_IP" >> /etc/resolv.conf
fi
grep "nameserver 8.8.8.8" /etc/resolv.conf
if [ $? != 0 ]; then
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
fi
sed -i 's/puppet_auto_setup: 0/puppet_auto_setup: 1/g' /etc/cobbler/settings
sed -i 's/sign_puppet_certs_automatically: 0/sign_puppet_certs_automatically: 1/g' /etc/cobbler/settings
sed -i 's/remove_old_puppet_certs_automatically: 0/remove_old_puppet_certs_automatically: 1/g' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
sed -i 's/manage_dns: 0/manage_dns: 1/g' /etc/cobbler/settings
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
sed -i 's|webdir: /var/www/cobbler|webdir: /srv/www/cobbler|g' /etc/cobbler/settings
# Set IP address in cobbler settings file
sed -i "s/__\$IPADDRESS__/$HOST_IP/g" /etc/cobbler/settings
sed -i "s/bind_master:.*/bind_master: $HOST_IP/g" /etc/cobbler/settings
sed -i "s/next_server:.*/next_server: $HOST_IP/g" /etc/cobbler/settings
sed -i "s/server:.*/server: $HOST_IP/g" /etc/cobbler/settings
sed -i "s/module = authn_.*/module = authn_testing/g" /etc/cobbler/modules.conf
set -e
if [[ "$rel" == *"14.04"* ]]; then
# Cobbler config for 14.04
mkdir -p /etc/apache2/conf-available/
cp /opt/contrail/contrail_server_manager/cobbler_14.conf /etc/apache2/conf.d/cobbler.conf
cp /opt/contrail/contrail_server_manager/cobbler_web_14.conf /etc/apache2/conf.d/cobbler_web.conf
cp /opt/contrail/contrail_server_manager/cobbler_14.conf /etc/cobbler/cobbler.conf
cp /opt/contrail/contrail_server_manager/cobbler_web_14.conf /etc/cobbler/cobbler_web.conf
cp /etc/apache2/conf.d/cobbler.conf /etc/apache2/conf-available/
cp /etc/apache2/conf.d/cobbler_web.conf /etc/apache2/conf-available/
a2enconf cobbler cobbler_web
cp -r /srv/www/cobbler /var/www/cobbler
cp -r /srv/www/cobbler_webui_content /var/www/cobbler_webui_content
chmod 777 /var/lib/cobbler/webui_sessions/
# The secret key file can be brought in by SM install - only need to sed the key into settings.py as below
SECRET_KEY=$(python -c 'import re;from random import choice; import sys; sys.stdout.write(re.escape("".join([choice("abcdefghijklmnopqrstuvwxyz0123456789^&*(-_=+)") for i in range(100)])))')
sed -i "s/^SECRET_KEY = .*/SECRET_KEY = '${SECRET_KEY}'/" /usr/share/cobbler/web/settings.py
else
sed -i ':a;N;$!ba;s:DocumentRoot /var/www\n:DocumentRoot /var/www/html\n:g' /etc/apache2/sites-available/default
sed -i 's:<Directory /var/www/>:<Directory /var/www/html/>:g' /etc/apache2/sites-available/default
# Cobbler config for 12.04
a2enmod version
setenforce 0
cp -r /srv/www/cobbler /var/www/cobbler
cp -r /srv/www/cobbler_webui_content /var/www/cobbler_webui_content
cp /opt/contrail/contrail_server_manager/cobbler.conf /etc/apache2/conf.d/
cp /opt/contrail/contrail_server_manager/cobbler_web.conf /etc/apache2/conf.d/
cp /opt/contrail/contrail_server_manager/cobbler.conf /etc/cobbler/
cp /opt/contrail/contrail_server_manager/cobbler_web.conf /etc/cobbler/
sed -i "s/django.conf.urls /django.conf.urls.defaults /g" /usr/share/cobbler/web/cobbler_web/urls.py
chmod 777 /var/lib/cobbler/webui_sessions/
fi
a2ensite smgr.conf
a2enmod proxy
a2enmod proxy_http
a2enmod wsgi
a2dismod mpm_event
a2enmod mpm_worker
update-rc.d contrail-server-manager defaults
# Set IP address in server manager configuration file.
sed -i "s/__\$IPADDRESS__/$HOST_IP/g" /opt/contrail/server_manager/sm-config.ini
sed -i "s/127.0.0.1/$HOST_IP/g" /opt/contrail/server_manager/sm-config.ini
# Set monitoring true as default
sed -i "s/monitoring * = .*/monitoring = true/g" /opt/contrail/server_manager/sm-config.ini
# Set IP Address in smgr_dhcp_event.py DHCP hook.
sed -i "s/__\$IPADDRESS__/$HOST_IP/g" /opt/contrail/server_manager/smgr_dhcp_event.py
sed -i "s/cobbler_username = cobbler/cobbler_username = testing/g" /opt/contrail/server_manager/sm-config.ini
sed -i "s/cobbler_password = cobbler/cobbler_password = testing/g" /opt/contrail/server_manager/sm-config.ini
#sed -i 's:"/var/named":"/var/cache/bind":g' /etc/cobbler/named.template
#sed -i 's:/var/named/data:/var/cache/bind:g' /etc/cobbler/named.template
#sed -i 's:data/named.run:named.run:g' /etc/cobbler/named.template
set +e
POSTFIX_CHECK=$(dpkg -l | grep postfix)
if [ "$INSTALLED" != "" ]; then
service postfix stop
fi
set -e
service sendmail restart
pushd /var/www/html/thirdparty_packages
dpkg-scanpackages . | gzip -9c > Packages.gz
popd
for f in /etc/cobbler/power/*.template; do
if ! grep -q '#for \$fact' $f; then
cat << EOT >> $f
#for \$fact, \$value in \$ks_meta.items()
#if \$fact=='ipmi_interface' and \$value == 'lanplus'
lanplus
#elif \$fact=='ipmi_interface' and \$value=='lan'
lan
#else
#pass
#end if
#end for
EOT
fi
done
update-rc.d apache2 defaults
update-rc.d xinetd defaults
update-rc.d cobblerd defaults
service apache2 restart
service xinetd restart
service cobblerd restart