Skip to content

Commit

Permalink
Related-Bug: #1488259 - Simplifying setup script and moving configura…
Browse files Browse the repository at this point in the history
…tion to Post Install

Bulk of the changes made in setup script for server manager has been moved to Post install script of various packages
Some packages added as dependencies in control files
Rules files changes to prevent same files being overwritten with each install
Remaining: Some packages are still being installed explicitly -> cobbler, puppetmaster-common, puppetmaster-python, libpython2.7
These packages have to be added to server-manager local repo

Patch 2:
Server Manager Install shows minimal outputs on console
named.template and named.conf.options are now manual config steps
Puppet agent certs are moved and not deleted on fresh install
Other review comments implemented

Patch 3:
Found bug in the name of sendmail and ntp conf samples being copied

Patch 4:
set +e, set -e for a grep bug in puppet cert generate
service restart for sm lite moved from postinst to setup script

Change-Id: If871e843d0f9ef17fb67833ae18df13c283f3664
  • Loading branch information
nitishkrishna committed Sep 1, 2015
1 parent 4a7fbec commit 2ff50b6
Show file tree
Hide file tree
Showing 14 changed files with 483 additions and 853 deletions.
863 changes: 206 additions & 657 deletions build/deb_server_manager_setup.sh

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ then
HOST_IP=$(cat /opt/contrail/contrail_server_manager/IP.txt)
fi
echo $HOST_IP
sed -i "s/listen_ip_addr = .*/listen_ip_addr = $HOST_IP/g" /opt/contrail/server_manager/client/sm-client-config.ini
easy_install argparse
easy_install pycurl
easy_install pip
Expand Down
2 changes: 1 addition & 1 deletion common/debian/contrail-server-manager-client/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ override_dh_auto_install:
cp -r $(src_path)/client/*.py $(build_root)/opt/contrail/server_manager/client/
cp -r $(src_path)/client/*.json $(build_root)/opt/contrail/server_manager/client/
cp -r $(src_path)/client/server-manager $(build_root)/opt/contrail/server_manager/client/
cp -r $(src_path)/client/sm-client-config.ini $(build_root)/opt/contrail/server_manager/client/
install -p -m 755 $(src_path)/client/sm-client-config.ini $(build_root)/opt/contrail/server_manager/client/

override_dh_shlibdeps:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Sample debian/rules that uses debhelper.
#!/bin/sh
set -e
cd /opt/contrail/contrail_server_manager/;

echo "running post install"
tar -xvf contrail_server_manager_packages.tgz
tar -xvf /opt/contrail/contrail_server_manager/contrail_server_manager_packages.tgz -C /opt/contrail/contrail_server_manager/
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ override_dh_auto_install:
install -p -m 755 $(provision_file_location)/provision_status.sh $(buildroot)$(_contrailopt)/contrail_server_manager/provision_status.sh
install -p -m 755 $(SB_TOP)/tools/packaging/build/ubuntu_12_04_3_sources.list $(buildroot)$(_contrailopt)/contrail_server_manager/ubuntu_12_04_3_sources.list
install -p -m 755 $(SB_TOP)/tools/packaging/build/ubuntu_14_04_1_sources.list $(buildroot)$(_contrailopt)/contrail_server_manager/ubuntu_14_04_1_sources.list
install -p -m 755 $(SB_TOP)/tools/packaging/build/puppetmaster $(buildroot)$(_contrailopt)/contrail_server_manager/puppetmaster
install -p -m 755 $(SB_TOP)/tools/packaging/build/cobbler.conf $(buildroot)$(_contrailopt)/contrail_server_manager/cobbler.conf
install -p -m 755 $(SB_TOP)/tools/packaging/build/cobbler_web.conf $(buildroot)$(_contrailopt)/contrail_server_manager/cobbler_web.conf
install -p -m 755 $(SB_TOP)/tools/packaging/build/cobbler_14.conf $(buildroot)$(_contrailopt)/contrail_server_manager/cobbler_14.conf
Expand Down
2 changes: 1 addition & 1 deletion common/debian/contrail-server-manager-lite/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 8)
Package: contrail-server-manager-lite
Architecture: all
Maintainer: tsurendra <tsurendra@juniper.net>
Depends: python, apache2, sqlite, puppetmaster-passenger (=3.7.3-1puppetlabs1), xinetd, python-pip, python-gevent, ntp,autoconf, gcc, tftp, sendmail, dpkg-dev, syslinux, ipmitool, createrepo, libapache2-mod-wsgi, python-urlgrabber, python-django, selinux-utils, python-simplejson, python-dev, fence-agents, python-requests, reprepro, python-netaddr
Depends: python, apache2, sqlite, puppetmaster-passenger (=3.7.3-1puppetlabs1), puppetmaster-common (=3.7.3-1puppetlabs1), xinetd, python-pip, python-gevent, ntp,autoconf, gcc, tftp, sendmail, dpkg-dev, syslinux, ipmitool, createrepo, libapache2-mod-wsgi, python-urlgrabber, python-django, selinux-utils, python-simplejson, python-dev, fence-agents, python-requests, reprepro, python-netaddr, python-yaml, libnss3-1d
Section: contrail-server-manager-lite
Priority: extra
Description: Contrail Server Manager - Server Package, without cobbler, only provisioning supported package.
127 changes: 50 additions & 77 deletions common/debian/contrail-server-manager-lite/debian/postinst
Original file line number Diff line number Diff line change
Expand Up @@ -2,108 +2,81 @@

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
rel=`lsb_release -r`

#cp -r /etc/contrail_smgr/cobbler /etc/
cp -r /etc/contrail_smgr/puppet /etc/
#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
#cd /etc/contrail_smgr/contrail-centos-repo
#createrepo .
#cd /etc/contrail_smgr/contrail-redhat-repo
#createrepo .

# Copy cobbler boot.cfg template file for esxi5.5
#cp -f /etc/contrail_smgr/cobbler/bootcfg_esxi55.template /etc/cobbler/pxe

# 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
#cp /etc/contrail_smgr/cobbler/dhcp.template.u /etc/cobbler/dhcp.template
#cp /etc/contrail_smgr/cobbler/named.template.u /etc/cobbler/named.template
#cp /etc/contrail_smgr/cobbler/named.conf.options.u /etc/bind/named.conf.options

cp /etc/contrail_smgr/smgr.conf /etc/apache2/sites-available/

mkdir -p /var/www/html
mkdir -p /var/www/html/kickstarts
cp -r /etc/contrail_smgr/kickstarts /var/www/html/
mkdir -p /var/www/html/contrail
mkdir -p /var/www/html/contrail/config_file
mkdir -p /var/www/html/contrail/images
mkdir -p /var/log/contrail-server-manager
mkdir -m 777 -p /var/log/contrail-server-manager/provision
mkdir -p /etc/mail/
cp /etc/contrail_smgr/sendmail.cf /etc/mail/

# Saving and replacing default NTP configuration (Server Manager node acts as NTP Server for Cluster)
cp /etc/contrail_smgr/sendmail.cf.sample /etc/mail/sendmail.cf
mv /etc/ntp.conf /etc/ntp.conf.default
cp /etc/contrail_smgr/ntp.conf /etc/ntp.conf

#cp /usr/bin/server_manager/dhcp.template /etc/cobbler/
#cp -r /usr/bin/server_manager/kickstarts /var/www/html/
mkdir -p /var/www/html/contrail
mkdir -p /var/www/html/thirdparty_packages
cp /etc/contrail_smgr/ntp.conf.sample /etc/ntp.conf

#cp -u /etc/puppet/puppet_init_rd /srv/www/cobbler/aux/puppet
easy_install argparse
easy_install paramiko
easy_install pycrypto
easy_install ordereddict

mkdir -p /etc/contrail_smgr/images/
# 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/

#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|webdir: /var/www/cobbler|webdir: /srv/www/cobbler|g' /etc/cobbler/settings
rel=`lsb_release -r`
if [[ "$rel" == *"14.04"* ]]; then
echo "Not seding files for 14.04"
else
a2enmod version
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
fi

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

# Set IP address in cobbler settings file
#sed -i "s/__\$IPADDRESS__/$HOST_IP/" /etc/cobbler/settings
update-rc.d contrail-server-manager defaults
#/sbin/chkconfig --add contrail-server-manager
#sed -i "s/module = authn_.*/module = authn_testing/g" /etc/cobbler/modules.conf

# Set IP address in server manager configuration file.
sed -i "s/__\$IPADDRESS__/$HOST_IP/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

service apache2 restart
service xinetd restart
#service cobblerd restart
# Setting SM Lite config - No cobbler, no monitoring
set +e
sed -i "s/listen_ip_addr = .*/listen_ip_addr = $HOST_IP/g" /opt/contrail/server_manager/sm-config.ini
grep "cobbler * = " /opt/contrail/server_manager/sm-config.ini
if [ $? == 0 ]; then
sed -i "s/cobbler * = .*/cobbler = false/g" /opt/contrail/server_manager/sm-config.ini
else
sed -i "/listen_port*/acobbler = false" /opt/contrail/server_manager/sm-config.ini
fi
grep "monitoring * = " /opt/contrail/server_manager/sm-config.ini
if [ $? == 0 ]; then
sed -i "s/monitoring * = .*/monitoring = false/g" /opt/contrail/server_manager/sm-config.ini
else
sed -i "/listen_port*/amonitoring = false" /opt/contrail/server_manager/sm-config.ini
fi
# Adding server and Public DNS to /etc/resolv.conf if not present
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
set -e

set +e
POSTFIX_CHECK=$(dpkg -l | grep postfix)
Expand All @@ -113,14 +86,14 @@ fi
set -e
service sendmail restart

#chkconfig apache2 on
#chkconfig puppetmaster on
#chkconfig contrail_smgrd on

cd /var/www/html/thirdparty_packages
pushd /var/www/html/thirdparty_packages
dpkg-scanpackages . | gzip -9c > Packages.gz
popd

update-rc.d apache2 defaults
update-rc.d xinetd defaults
#update-rc.d cobblerd defaults
#update-rc.d puppetmaster defaults

a2ensite smgr.conf

service apache2 restart
service xinetd restart
29 changes: 15 additions & 14 deletions common/debian/contrail-server-manager-lite/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,20 @@ override_dh_auto_install:
install -d -m 755 $(build_root)/opt/contrail/server_manager/
install -d -m 754 $(build_root)/etc/init.d/
install -d -m 754 $(build_root)/etc/contrail_smgr/
install -d -m 754 $(build_root)/etc/contrail_smgr/images/
install -d -m 754 $(build_root)/etc/contrail_smgr/contrail-centos-repo/
install -d -m 754 $(build_root)/etc/contrail_smgr/contrail-redhat-repo/
install -d -m 754 $(build_root)/usr/sbin/
install -d -m 755 $(build_root)/usr/lib/$(python_dir)/dist-packages/cobbler/modules/
install -d -m 755 $(build_root)/opt/contrail/server_manager/reprepro/
install -d -m 755 $(build_root)/opt/contrail/server_manager/reprepro/conf

install -d -m 755 $(build_root)/var/www/html/kickstarts/
install -d -m 755 $(build_root)/var/www/html/contrail/
install -d -m 755 $(build_root)/var/www/html/contrail/images/
install -d -m 755 $(build_root)/var/www/html/contrail/config_file/
install -d -m 755 $(build_root)/var/www/html/thirdparty_packages/
install -d -m 777 $(build_root)/var/log/contrail-server-manager/provision/
install -d -m 755 $(build_root)/etc/mail/
# Copy/install files
install -p -m 755 $(src_path)/reprepro/conf/distributions $(build_root)/opt/contrail/server_manager/reprepro/conf/distributions
install -p -m 755 $(src_path)/reprepro/conf/override $(build_root)/opt/contrail/server_manager/reprepro/conf/override
Expand All @@ -100,33 +107,27 @@ override_dh_auto_install:
cp -r $(src_path)/server_mgr_ssh_client.py $(build_root)/opt/contrail/server_manager/
cp -r $(src_path)/server_mgr_validations.py $(build_root)/opt/contrail/server_manager/
cp -r $(src_path)/role_sequence.json $(build_root)/etc/contrail_smgr/
cp -r $(src_path)/smgr.conf $(build_root)/etc/contrail_smgr/

cp -r $(src_path)/third_party/bottle.py $(build_root)/opt/contrail/server_manager/
cp -r $(src_path)/utils/send_mail.py $(build_root)/opt/contrail/server_manager/
cp -r $(src_path)/third_party/server_post_install.py $(build_root)/usr/lib/$(python_dir)/dist-packages/cobbler/modules/
cp -r $(src_path)/third_party/server_pre_install.py $(build_root)/usr/lib/$(python_dir)/dist-packages/cobbler/modules/

cp -r $(src_path)/sm-config.ini $(build_root)/opt/contrail/server_manager/
cp -r $(src_path)/tags.ini $(build_root)/etc/contrail_smgr/
cp -r $(src_path)/logger.conf $(build_root)/opt/contrail/server_manager/
# Config files - Do not overwrite
install -p -m 755 $(src_path)/smgr.conf $(build_root)/etc/contrail_smgr/smgr.conf
install -p -m 755 $(src_path)/sm-config.ini $(build_root)/opt/contrail/server_manager/sm-config.ini
install -p -m 755 $(src_path)/tags.ini $(build_root)/opt/contrail/server_manager/tags.ini
install -p -m 755 $(src_path)/logger.conf $(build_root)/opt/contrail/server_manager/logger.conf
install -p -m 755 $(src_path)/utils/sendmail.cf.sample $(build_root)/etc/contrail_smgr/sendmail.cf.sample
install -p -m 755 $(src_path)/ntp.conf.sample $(build_root)/etc/contrail_smgr/ntp.conf.sample
cp -r $(src_path)/contrail-server-manager.u $(build_root)/etc/init.d/contrail-server-manager
cp -r $(src_path)/contrail-server-manager-lite.start.u $(build_root)/usr/sbin/contrail-server-manager
cp -r $(src_path)/utils/sendmail.cf $(build_root)/etc/contrail_smgr/
cp -r $(src_path)/ntp.conf $(build_root)/etc/contrail_smgr/

cp -r $(src_path)/puppet $(build_root)/etc/contrail_smgr/
cp -r $(src_path)/cobbler $(build_root)/etc/contrail_smgr/
cp -r $(src_path)/kickstarts $(build_root)/etc/contrail_smgr/

$(src_path)/../../../tools/packaging/tools/scripts/copy_thirdparty_packages.py --package-file $(pkg_file) \
--destination-dir $(build_root)/var/www/html/thirdparty_packages \
--source-dirs $(pkg_sources) || (echo "Copying Built packages failed"; exit 1)

$(src_path)/../../../tools/packaging/tools/scripts/copy_thirdparty_packages.py --package-file $(centos_pkg_file) \
--destination-dir $(build_root)/etc/contrail_smgr/contrail-centos-repo \
--source-dirs $(pkg_sources) || (echo "Copying Built centos packages failed"; exit 1)

$(src_path)/../../../tools/packaging/tools/scripts/copy_thirdparty_packages.py --package-file $(redhat_pkg_file) \
--destination-dir $(build_root)/etc/contrail_smgr/contrail-redhat-repo \
--source-dirs $(pkg_sources) || (echo "Copying Built redhat packages failed"; exit 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ then
HOST_IP=$(cat /opt/contrail/contrail_server_manager/IP.txt)
fi
echo $HOST_IP
sed -i "s/127.0.0.1/$HOST_IP/g" /opt/contrail/server_manager/sm-monitoring-config.ini

sed -i "s/127.0.0.1/$HOST_IP/g" /opt/contrail/server_manager/sm-sandesh-config.ini
7 changes: 3 additions & 4 deletions common/debian/contrail-server-manager-monitoring/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,14 @@ override_dh_auto_build:
override_dh_auto_install:
mkdir -p ${_python_dist}
rm -rf ${buildroot}

install -d -m 755 $(buildroot)$(_bindir)
install -d -m 755 $(buildroot)/opt/contrail/server_manager/
scons -U install_contrail_sm_monitoring --root=${buildroot}
scons -U install_contrail_sm_inventory --root=${buildroot}
cp -r $(src_path)/server_mgr_ipmi_monitoring.py $(buildroot)/opt/contrail/server_manager/
cp -r $(src_path)/server_mgr_inventory.py $(buildroot)/opt/contrail/server_manager/
cp -r $(src_path)/server_mgr_disk_filesystem_view.py $(buildroot)/opt/contrail/server_manager/
cp -r $(src_path)/sm-monitoring-config.ini $(buildroot)/opt/contrail/server_manager/
cp -r $(src_path)/sm-inventory-config.ini $(buildroot)/opt/contrail/server_manager/
cp -r $(src_path)/sm-sandesh-config.ini $(buildroot)/opt/contrail/server_manager/
install -p -m 755 $(src_path)/sm-monitoring-config.ini $(buildroot)/opt/contrail/server_manager/
install -p -m 755 $(src_path)/sm-inventory-config.ini $(buildroot)/opt/contrail/server_manager/
install -p -m 755 $(src_path)/sm-sandesh-config.ini $(buildroot)/opt/contrail/server_manager/
override_dh_shlibdeps:
2 changes: 1 addition & 1 deletion common/debian/contrail-server-manager/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Build-Depends: debhelper (>= 8)
Package: contrail-server-manager
Architecture: all
Maintainer: tsurendra <tsurendra@juniper.net>
Depends: python , apache2, sqlite, cobbler (>=2.6.3), puppetmaster-passenger (=3.7.3-1puppetlabs1), xinetd, python-pip, python-gevent, dhcp3-server, ntp,autoconf, gcc, bind9, tftp, sendmail, dpkg-dev, syslinux, ipmitool, createrepo, libapache2-mod-wsgi, python-urlgrabber, python-django, selinux-utils, python-simplejson, python-dev, fence-agents, python-requests, reprepro, python-netaddr
Depends: python , apache2, sqlite, cobbler (=2.6.3-1), puppetmaster-passenger (=3.7.3-1puppetlabs1), puppetmaster-common (=3.7.3-1puppetlabs1), xinetd, python-pip, python-gevent, dhcp3-server, ntp,autoconf, gcc, bind9, tftp, sendmail, dpkg-dev, syslinux, ipmitool, createrepo, libapache2-mod-wsgi, tftpd-hpa, python-urlgrabber, python-django, selinux-utils, python-simplejson, python-dev, fence-agents, python-requests, reprepro, python-netaddr
Section: contrail-server-manager
Priority: extra
Description: Contrail Server Manager - Server Package

0 comments on commit 2ff50b6

Please sign in to comment.