Update Compass install script and config management code
This commit is contained in:
parent
8dd3cbf3a6
commit
055e69bb82
@ -62,7 +62,8 @@ CLUSTER_HOST_MERGER = ConfigMerger(
|
||||
),
|
||||
ConfigMapping(
|
||||
path_list=['/networking/global'],
|
||||
from_upper_keys={'default': 'default_no_proxy'},
|
||||
from_upper_keys={'default': 'default_no_proxy',
|
||||
'clusterid': 'clusterid'},
|
||||
from_lower_keys={'hostnames': '/hostname',
|
||||
'ips': '/networking/interfaces/management/ip'},
|
||||
to_key='ignore_proxy',
|
||||
|
@ -346,12 +346,12 @@ def assign_from_pattern(_upper_ref, _from_key, lower_refs, to_key,
|
||||
|
||||
|
||||
def assign_noproxy(_upper_ref, _from_key, lower_refs,
|
||||
to_key, default=[], hostnames={}, ips={},
|
||||
**_kwargs):
|
||||
to_key, default=[], clusterid=1,
|
||||
hostnames={}, ips={}, **_kwargs):
|
||||
"""Assign no proxy to hosts."""
|
||||
no_proxy_list = deepcopy(default)
|
||||
for _, hostname in hostnames.items():
|
||||
no_proxy_list.append(hostname)
|
||||
no_proxy_list.append('%s.%s' % (hostname, clusterid))
|
||||
|
||||
for _, ip_addr in ips.items():
|
||||
no_proxy_list.append(ip_addr)
|
||||
|
@ -68,9 +68,9 @@ class HDManager:
|
||||
"""
|
||||
# List all vendors in vendors directory -- a directory but hidden
|
||||
# under ../vendors
|
||||
all_vendors = [o for o in os.listdir(self.vendors_dir)
|
||||
all_vendors = sorted(o for o in os.listdir(self.vendors_dir)
|
||||
if os.path.isdir(os.path.join(self.vendors_dir, o))
|
||||
and re.match(r'^[^\.]', o)]
|
||||
and re.match(r'^[^\.]', o))
|
||||
|
||||
logging.debug("[get_vendor]: %s ", all_vendors)
|
||||
for vname in all_vendors:
|
||||
|
@ -150,7 +150,8 @@ class TestConfigMerger(unittest2.TestCase):
|
||||
),
|
||||
config_merger.ConfigMapping(
|
||||
path_list=['/networking/global'],
|
||||
from_upper_keys={'default': 'default_no_proxy'},
|
||||
from_upper_keys={'default': 'default_no_proxy',
|
||||
'clusterid': '/clusterid'},
|
||||
from_lower_keys={'hostnames': '/hostname',
|
||||
'ips': '/networking/interfaces/management/ip'},
|
||||
to_key='ignore_proxy',
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
##export ipaddr=$(ifconfig $NIC | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
|
||||
echo "$ipaddr $HOSTNAME" >> /etc/hosts
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
echo "Installing cobbler related packages"
|
||||
sudo yum -y install cobbler cobbler-web createrepo mkisofs python-cheetah python-simplejson python-urlgrabber PyYAML Django cman debmirror pykickstart -y
|
||||
|
||||
@ -10,7 +13,6 @@ sudo mkdir /root/backup # create backup folder
|
||||
sudo cp /etc/ntp.conf /root/backup/
|
||||
# update ntp.conf
|
||||
sudo sed -i 's/^#server[ \t]\+127.127.1.0/server 127.127.1.0/g' /etc/ntp.conf
|
||||
sudo sed -i 's/^#fudge[ \t]\+127.127.1.0[ \t]\+stratum.*$/fudge 127.127.1.0 stratum 8/g' /etc/ntp.conf
|
||||
sudo service ntpd restart
|
||||
|
||||
# configure xinetd
|
||||
@ -35,15 +37,15 @@ sudo cp /etc/cobbler/settings /root/backup/cobbler/
|
||||
sudo cp /etc/cobbler/dhcp.template /root/backup/cobbler/
|
||||
|
||||
# Dumps the variables to dhcp template
|
||||
sudo sed -i "s/subnet 192.168.1.0 netmask 255.255.255.0/subnet $SUBNET netmask 255.255.255.0/g" /etc/cobbler/dhcp.template
|
||||
subnet=$(ipcalc $SUBNET -n |cut -f 2 -d '=')
|
||||
sudo sed -i "s/subnet 192.168.1.0 netmask 255.255.255.0/subnet $subnet netmask 255.255.255.0/g" /etc/cobbler/dhcp.template
|
||||
sudo sed -i "/option routers/c\ option routers $OPTION_ROUTER;" /etc/cobbler/dhcp.template
|
||||
sudo sed -i "/range dynamic-bootp/c\ range dynamic-bootp $IP_RANGE;" /etc/cobbler/dhcp.template
|
||||
sudo sed -i "/next-server/c\ next-server $NEXTSERVER;" /etc/cobbler/dhcp.template
|
||||
sed -i 's/^\([ \t]*\).*fixed-address.*$/\1#pass/g' /etc/cobbler/dhcp.template
|
||||
sudo sed -i "/allow bootp/a deny unknown-clients;" /etc/cobbler/dhcp.template
|
||||
sudo sed -i 's/^\([ \t]*\).*fixed-address.*$/\1#pass/g' /etc/cobbler/dhcp.template
|
||||
sudo sed -i "/allow bootp/a deny unknown-clients;\nlocal-address $ipaddr;" /etc/cobbler/dhcp.template
|
||||
|
||||
# Set up other setting options in cobbler/settings
|
||||
sudo sed -i "/next_server/c\next_server: $ipaddr" /etc/cobbler/settings
|
||||
sudo sed -i "/next_server/c\next_server: $NEXTSERVER" /etc/cobbler/settings
|
||||
sudo sed -i "s/server:[ \t]\+127.0.0.1/server: $ipaddr/g" /etc/cobbler/settings
|
||||
sudo sed -i 's/manage_dhcp:[ \t]\+0/manage_dhcp: 1/g' /etc/cobbler/settings
|
||||
sudo sed -i 's/manage_dns:[ \t]\+0/manage_dns: 1/g' /etc/cobbler/settings
|
||||
@ -73,9 +75,9 @@ CBLR_PASSWD=${CBLR_PASSWD:-"cobbler"}
|
||||
(echo -n "$CBLR_USER:Cobbler:" && echo -n "$CBLR_USER:Cobbler:$CBLR_PASSWD" | md5sum - | cut -d' ' -f1) >> /etc/cobbler/users.digest
|
||||
|
||||
sudo sed -i "s/listen-on[ \t]\+.*;/listen-on port 53 \{ $ipaddr; \};/g" /etc/cobbler/named.template
|
||||
sudo sed -i 's/allow-query[ \t]\+.*/allow-query\t{ 127.0.0.0\/8; 10.0.0.0\/8; 192.168.0.0\/16; 172.16.0.0\/12; };/g' /etc/cobbler/named.template
|
||||
sudo sed -i "s/allow-query[ \t]\+.*/allow-query\t\{ 127.0.0.0\/8; 10.0.0.0\/8; 192.168.0.0\/16; 172.16.0.0\/12; $subnet; \};/g" /etc/cobbler/named.template
|
||||
|
||||
echo "$HOSTNAME A $ipaddr" >> zone.template
|
||||
echo "$HOSTNAME IN A $ipaddr" >> /etc/cobbler/zone.template
|
||||
|
||||
sudo cp /etc/xinetd.d/rsync /root/backup/
|
||||
sudo sed -i 's/disable\([ \t]\+\)=\([ \t]\+\)yes/disable\1=\2no/g' /etc/xinetd.d/rsync
|
||||
|
@ -17,6 +17,7 @@ copygit2dir()
|
||||
cd $SCRIPT_DIR
|
||||
#export ipaddr=$(ifconfig $NIC | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
|
||||
|
||||
##SUBNET=${SUBNET:-$(ip address| grep "global $NIC" |cut -f 6 -d ' ')}
|
||||
WEB_HOME=${WEB_HOME:-'/tmp/web/'}
|
||||
ADAPTER_HOME=${ADAPTER_HOME:-'/tmp/adapter/'}
|
||||
copygit2dir $WEB_HOME 'https://github.com/huawei-cloud/compass-web'
|
||||
@ -31,11 +32,17 @@ sudo \cp -rf $JS_MVC/. $WEB_HOME/public/
|
||||
# update squid conf
|
||||
sudo rm /etc/squid/squid.conf
|
||||
sudo cp $COMPASSDIR/misc/squid/squid.conf /etc/squid/
|
||||
sudo sed -i "/acl localnet src 10.0.0.0/i\acl localnet src $SUBNET" /etc/squid/squid.conf
|
||||
sudo chmod 644 /etc/squid/squid.conf
|
||||
sudo mkdir -p /var/squid/cache
|
||||
sudo chown -R squid:squid /var/squid
|
||||
sudo service squid restart
|
||||
|
||||
# update /etc/resolv.conf
|
||||
echo "DNS1=$ipaddr" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
|
||||
echo "DOMAIN=ods.com" >> /etc/sysconfig/network-scripts/ifcfg-$NIC
|
||||
service network restart
|
||||
|
||||
# Install net-snmp
|
||||
sudo yum install -y net-snmp-utils net-snmp net-snmp-python
|
||||
if [ ! -d "/usr/local/share/snmp/" ]; then
|
||||
@ -51,7 +58,7 @@ sudo cp -r /var/lib/cobbler/snippets /root/backup/cobbler/
|
||||
sudo cp -r /var/lib/cobbler/kickstarts/ /root/backup/cobbler/
|
||||
sudo rm -rf /var/lib/cobbler/snippets/*
|
||||
sudo cp -r $ADAPTER_HOME/cobbler/snippets/* /var/lib/cobbler/snippets/
|
||||
#sudo cp -rf /etc/chef-server/chef-validator.pem /var/lib/cobbler/snippets/chef-validator.pem
|
||||
sudo cp -rf /etc/chef-server/chef-validator.pem /var/lib/cobbler/snippets/chef-validator.pem
|
||||
sudo chmod 777 /var/lib/cobbler/snippets
|
||||
sudo chmod 666 /var/lib/cobbler/snippets/*
|
||||
sudo rm /var/lib/cobbler/kickstarts/default.ks
|
||||
@ -111,5 +118,5 @@ cd $COMPASSDIR
|
||||
sudo python setup.py install
|
||||
sudo sed -i "/COBBLER_INSTALLER_URL/c\COBBLER_INSTALLER_URL = 'http:\/\/$ipaddr/cobbler_api'" /etc/compass/setting
|
||||
sudo sed -i "/CHEF_INSTALLER_URL/c\CHEF_INSTALLER_URL = 'https:\/\/$ipaddr/'" /etc/compass/setting
|
||||
sudo sh /opt/compass/bin/refresh.sh
|
||||
sudo sh /opt/compass/bin/refresh.sh --init
|
||||
figlet -ctf slant Installation Complete!
|
||||
|
@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo 'Installing Required packages for Compass...'
|
||||
|
||||
sudo yum install -y rsyslog ntp iproute openssh-clients python git wget python-setuptools python-netaddr python-flask python-flask-sqlalchemy python-amqplib amqp python-paramiko python-mock mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp python-daemon
|
||||
|
@ -12,7 +12,7 @@ export PACKAGE_INSTALLER=chef
|
||||
export NIC=
|
||||
|
||||
# DHCP config
|
||||
# SUBNET variable specifies the subnet for DHCP server. Example: 192.168.0.0
|
||||
# SUBNET variable specifies the subnet for DHCP server. Example: 192.168.0.0/16
|
||||
export SUBNET=
|
||||
# DHCP option router address(Default is your management interface IP address )"
|
||||
export OPTION_ROUTER=
|
||||
|
@ -81,9 +81,10 @@ loadvars()
|
||||
echo $NIC
|
||||
loadvars NIC "eth0"
|
||||
export ipaddr=$(ifconfig $NIC | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
|
||||
range=$(echo "$(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').100 $(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').250")
|
||||
loadvars SUBNET $(ipcalc $(ip address| grep "global $NIC" |cut -f 6 -d ' ') -n|cut -f 2 -d '=')
|
||||
loadvars OPTION_ROUTER $ipaddr
|
||||
export range=$(echo "$(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').100 $(echo "$ipaddr"|cut -f 1 -d '.').$(echo "$ipaddr"|cut -f 2 -d '.').$(echo "$ipaddr"|cut -f 3 -d '.').250")
|
||||
export ipnet=$(ip address| grep "global $NIC" |cut -f 6 -d ' ')
|
||||
loadvars SUBNET $(ipcalc $ipnet -n |cut -f 2 -d '=')/$(ipcalc $ipnet -p |cut -f 2 -d '=')
|
||||
loadvars OPTION_ROUTER $(route -n | grep '^0.0.0.0' | xargs | cut -d ' ' -f 2)
|
||||
loadvars IP_RANGE "$range"
|
||||
loadvars NEXTSERVER $ipaddr
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user