Beispiel #1
0
    def set_kickstart(self):
        logger.info("set kickstart file for %s" %self.hostname)
        ks_path = "/var/www/%s" %self.mac
        re = os.path.exists(ks_path)
        if re == False:
            os.mkdir(ks_path)
        shutil.copy("/var/www/ks.cfg", ks_path)
        
        cmd = [
#               "sed -i \"s/DEVICE=.*/DEVICE=eth0/g\" %s/ks.cfg" %ks_path ,
#               "sed -i \"s/IPADDR=.*/IPADDR=%s/g\" %s/ks.cfg" %(self.ip ,ks_path) ,
#               "sed -i \s/NETMASK=.*/NETMASK=%s/g\" %s/ks.cfg" %(self.ya['cobbler_dhcp']['netmask_ip'] ,ks_path) ,
#               "sed -i \"s/GATEWAY=.*/GATEWAY=%s/g\" %s/ks.cfg" %(self.ya['cobbler_dhcp']['gateway_ip'] ,ks_path) ,
#               "sed -i \"s/DNS1=.*/DNS1=%s/g\" %s/ks.cfg" %(self.ya['cobbler_dhcp']['dns_ip'] ,ks_path) ,
#               "sed -i \"s/127\.0\.0\.1/%s/g\" %s/ks.cfg" %(self.ya['cobber_server']['ip'] ,ks_path) ,
               "sed -i \"s/myip/%s/g\" %s/ks.cfg" %(self.ip ,ks_path) ,
               "sed -i \"s/myhostname/%s/g\" %s/ks.cfg" %(self.hostname ,ks_path)               
               ]
        for i in cmd:
            basefunction.run_command(i, None, logger)

#        cmd = "sed -i \"s/myhostname/%s/g\" %s/ks.cfg" %(self.hostname ,ks_path)
#        basefunction.run_command(cmd, None, logger)
        
        strr = """$yum_config_stanza
$yum_repo_stanza
$SNIPPET('kickstart_done')"""
        f = open("%s/ks.cfg" %ks_path,"a")
        f.write(strr)
        f.close()
Beispiel #2
0
def create_repo():
    rpm_name="createrepo"
    re = basefunction.check_rpm(rpm_name ,None, logger)
    if re == False:
        basefunction.install_rpm(rpm_name, None, logger)
        re = basefunction.check_rpm(rpm_name ,None, logger)
        if re == False:
            print "create repo error ! Not installed createrepo"
            logger.error("create repo error !")
            sys.exit(-1)

    cmd = "cd %s/source/%s;tar xvf install.tar.gz install;createrepo install"%(dirr,os_type)
    basefunction.run_command(cmd, None, logger)
    if re == False:
        print "create repo error ! set repo error"
        logger.error("create repo error !")
        sys.exit(-1)
    strr = """[install-Server]
name=install-Server
baseurl=file://%s/source/%s/install
enabled=1
gpgcheck=0"""%(dirr,os_type)

    f = open("/etc/yum.repos.d/install.repo","w")
    f.write(strr)
    f.close()
Beispiel #3
0
def set_mysql():
    cmd = [
           "service mysqld start;chkconfig --level 2345 mysqld on" ,
           "mysqladmin -u root password %s" %ya['my_cfg']['my_sql_password']
           ]
    for i in cmd:
        basefunction.run_command(i,None,logger)
Beispiel #4
0
 def set_openstack_repo(self):
     logger.info("start to create openstack repo")
     os_type = self.ya['deploy_os_type']
     shutil.copy("%s/source/%s/openstack-packages.tar.gz" %(dirr,os_type), "/var/ftp/")
     
     cmd = "cd /var/ftp/;tar xvf openstack-packages.tar.gz;createrepo openstack-packages"
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("create openstack repo error")
         self.set_result("2")
         sys.exit(-1)
     
     cmd = "cobbler repo remove --name=openstack-local"
     basefunction.run_command(cmd, None, logger)
     
     cmd = [
            "cobbler repo add --name=openstack-local --mirror=ftp://127.0.0.1/openstack-packages" ,
            "cobbler reposync",
            "cobbler profile edit --name=openstack_%s-x86_64 --repos=\"openstack-local\"" %os_type
            ]
     for i in cmd:
         re = basefunction.run_command(i, None, logger)
         if re == False:
             logger.error("add repo error")
             self.set_result("2")
             sys.exit(-1)       
Beispiel #5
0
 def set_cobbler_cfg(self):
     
     cmd = [
            "sed -i \"s/next_server:.*/next_server: %s/g\" /etc/cobbler/settings" % self.ya['cobber_server']['ip'] ,
            "sed -i \"s/server:.*/server: %s/g\" /etc/cobbler/settings" % self.ya['cobber_server']['ip'] ,
            "sed -i \"s/manage_dhcp:.*/manage_dhcp: 1/g\" /etc/cobbler/settings" ,
            "sed -i \"s/pxe_just_once:.*/pxe_just_once: 1/g\" /etc/cobbler/settings" ,
            "sed -i \"s/disable.*/disable  = no /g\" /etc/xinetd.d/tftp" ,
            "sed -i \"s/disable.*/disable  = no /g\" /etc/xinetd.d/rsync"
            ]
     for i in cmd:
         basefunction.run_command(i, None, logger)
     shutil.copy("%s/config/dhcp.template" %dirr, "/etc/cobbler/dhcp.template")
     
     cmd = [
            "sed -i \"s/subnet.*netmask.*{/subnet %s netmask %s {/g\" /etc/cobbler/dhcp.template" %(self.ya['cobbler_dhcp']['subnet_ip'],self.ya['cobbler_dhcp']['subnet_netmask']) ,
            "sed -i \"s/option routers.*/option routers    %s;/g\" /etc/cobbler/dhcp.template" %self.ya['cobbler_dhcp']['gateway_ip'] ,
            "sed -i \"s/option domain-name-servers.*/option domain-name-servers    %s;/g\" /etc/cobbler/dhcp.template" %self.ya['cobbler_dhcp']['dns_ip'] ,
            "sed -i \"s/option subnet-mask.*/option subnet-mask    %s;/g\" /etc/cobbler/dhcp.template" %self.ya['cobbler_dhcp']['netmask_ip'] ,
            "sed -i \"s/range dynamic-bootp.*/range dynamic-bootp    %s %s;/g\" /etc/cobbler/dhcp.template" %(self.ya['cobbler_dhcp']['range_ip_start'] ,self.ya['cobbler_dhcp']['range_ip_stop']) ,
            "service ntpd start;chkconfig ntpd on"
            ]
     for i in cmd:
         basefunction.run_command(i, None, logger)
     
     cmd = "service cobblerd restart;cobbler sync"
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("Set cobbler error ,please check dhcp config")
         self.set_result("2")
         sys.exit(-1)
Beispiel #6
0
def nc_message(message):
    ip = ya['cobbler_server']['ip']
    name = ya['my_cfg']['hostname']
    cmd = ["telnet %s 3336 & " %ip,
           "sleep 2 ",
           "echo \"%s:%s\" | nc %s 6666 " %(name,message,ip)
           ]
    for i in cmd:
        basefunction.run_command(i,None,logger)
Beispiel #7
0
 def set_kickstart_file(self):
     logger.info("start to set kickstart file")
     os_type = self.ya['deploy_os_type']
     shutil.copy("%s/config/%s/ks.cfg" %(dirr,os_type), "/var/www/ks.cfg")
     cmd = [
            "sed -i \"s/ftp:\/\/192\.168\.1\.1\/pub/http:\/\/%s:80\/cobbler\/ks_mirror\/openstack_%s-x86_64/g\" /var/www/ks.cfg" %(self.ya['cobber_server']['ip'],os_type) ,
            "sed -i \"s/(@_@)/%s/g\" /var/www/ks.cfg" %self.ya['cobber_server']['hostname'],
            "sed -i \"s/(@-@)/%s/g\" /var/www/ks.cfg" %self.ya['cobber_server']['ip']
            ]
     for i in cmd:
         basefunction.run_command(i, None, logger) 
Beispiel #8
0
 def mount_file(self,os_file):
     cmd = "umount /mnt"
     basefunction.run_command(cmd, None, logger)
     cmd = "mount -o loop %s /mnt" %os_file
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         cmd = "mount %s /mnt" %os_file
         re = basefunction.run_command(cmd, None, logger)
         if re == False:
             logger.error("mount file error")
             self.set_result("2")
             sys.exit(-1)
Beispiel #9
0
 def set_distro(self):
     logger.info("start to create distro")
     os_type = self.ya['deploy_os_type']
     cmd = "cobbler distro remove --name=openstack_%s-x86_64" % os_type
     basefunction.run_command(cmd, None, logger)
     if os.path.exists("/var/www/cobbler/ks_mirror/openstack_%s-x86_64" % os_type):
         shutil.rmtree("/var/www/cobbler/ks_mirror/openstack_%s-x86_64" % os_type)
     cmd = "cobbler import --path=/mnt --name=openstack_%s --arch=x86_64" % os_type
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("set distro error")
         self.set_result("2")
         sys.exit(-1)
Beispiel #10
0
 def add_cobbler_system(self):
     logger.info("Start to add cobbler system for %s" %self.hostname)
     cmd = "cobbler system remove --name=%s" %self.mac
     basefunction.run_command(cmd, None, logger)
     cmd = "cobbler system add --name=%s --profile=openstack_%s-x86_64 --mac=%s --static=yes --ip-address=%s --subnet=%s --gateway=%s --name-servers=%s --kickstart=/var/www/%s/ks.cfg --hostname=%s --netboot-enabled=true" %(self.mac,self.os_type,self.mac,self.ip,self.subnet,self.gateway,self.dns,self.mac,self.hostname)
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("Set cobbler system error")
         sys.exit(-1)
     cmd = "cobbler sync"
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("cobbler sync error")
         sys.exit(-1)
Beispiel #11
0
 def done(self):
     logger.info("Start to delete host %s" %self.hostname)
     cmd = [
            "cobbler system remove --name=%s" %self.mac ,
            "cobbler sync" ,
            "sed -i \"/%s/,+10d\" /etc/puppet/manifests/nodes.pp" %self.hostname ,
            "puppetca clean %s" %self.hostname ,
            "sed -i \"/%s/d\" /etc/hosts" %self.hostname
            ]
     for i in cmd:
         basefunction.run_command(i, None, logger)
         
     if os.path.exists("/var/log/openstack/nodes/%s.log" %self.hostname) :
         os.remove("/var/log/openstack/nodes/%s.log" %self.hostname)
         
     if os.path.exists("/etc/puppet/files/%s/%s" %(self.os_type,self.hostname)) :
         shutil.rmtree("/etc/puppet/files/%s/%s" %(self.os_type,self.hostname))
Beispiel #12
0
def set_dashboard():
    cmd = "openstack-dashboard mod_wsgi"
    basefunction.install_rpm(cmd, None, logger)
    
    cmd = ["openstack-dashboard" ,"mod_wsgi"]
    for i in cmd:
        re == basefunction.check_rpm(i, None, logger)
        if re == False:
            nc_message("error")
            logger.error("rpm %s not installed " %i) 
            logmonitor.log_read(server_ip)
            sys.exit()
            
    cmd = [
           "sed -i \"s/CACHE_BACKEND =.*/CACHE_BACKEND = \'memcached:\/\/127.0.0.1:11211\/\'/g\" /etc/openstack-dashboard/local_settings" ,
           "sed -i \'s/OPENSTACK_HOST =.*/OPENSTACK_HOST = \"%s\"/g' /etc/openstack-dashboard/local_settings" %ya1['keystone'],
           "service memcached start;chkconfig memcached on",
           "service httpd start;chkconfig httpd on"
           ]
    
    for i in cmd:
        basefunction.run_command(i, None, logger)
Beispiel #13
0
 def done(self):
     cmd = "sed -i \"/%s/,+10d\" /etc/puppet/manifests/nodes.pp" %self.hostname
     basefunction.run_command(cmd, None, logger)
     
     strr = """node '%s' {
         file{ \"/opt/openstack/local.yaml\":
             ensure => present,
             alias => \"local.yaml\",
             source => \"puppet:///files/%s/%s/local.yaml\",
             owner => root,
             group => root,
             mode => 644;
         }
         include deploy
     }\n""" % (self.hostname,self.os_type,self.hostname)
     
     f = open("/etc/puppet/manifests/nodes.pp","a")
     f.write(strr)
     f.close()
     
     
     
Beispiel #14
0
 def done(self ,os_file):
     self.set_result("0")
     
     self.mount_file(os_file)
     self.set_puppet()
     self.set_cobbler_cfg()
     self.set_distro()
     self.set_openstack_repo()
     self.set_kickstart_file()
     
     ip = self.ya['cobber_server']['ip']
     hostname = self.ya['cobber_server']['hostname']
     basefunction.set_hosts(ip, hostname, logger)
     
     cmd = "service xinetd restart;cobbler sync"
     re = basefunction.run_command(cmd, None, logger)
     if re == False:
         logger.error("run cmd %s error "%cmd)
         self.set_result("2")
         sys.exit("-1")
     cmd = "service rabbitmq-server restart"
     basefunction.run_command(cmd, None, logger)
     self.set_result("1")
Beispiel #15
0
def set_glance():
    logger.info("Start to set glance")
    rpm_name = ["openstack-glance" ,"openstack-keystone" ,"python-keystoneclient"]
    for i in rpm_name:
        re = basefunction.check_rpm(i,None,logger)
        if re == False:
            re = basefunction.install_rpm(i,None,logger)
            re = basefunction.check_rpm(i,None,logger)
            if re == False:
                nc_message("error")
                logger.info("Set glance error")
                logmonitor.log_read(server_ip)
                sys.exit(-1)
                
    cmd = """mysql -uroot -p%s <<EOF
            CREATE DATABASE glance;
            GRANT ALL ON glance.* TO 'glance'@'%%' IDENTIFIED BY 'glance';
            GRANT ALL ON glance.* TO 'glance'@'%s' IDENTIFIED BY 'glance';
EOF""" %(ya['my_cfg']['my_sql_password'],ya['my_cfg']['hostname'])

    basefunction.run_command(cmd,None,logger)
                
                
    cmd = [
           "sed -i \"s/#enable_v1_api = True/enable_v1_api = True/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/#enable_v2_api = True/enable_v2_api = True/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/#flavor=/flavor=keystone/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/admin_tenant_name.*/admin_tenant_name = service/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/admin_user.*/admin_user = glance/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/admin_password.*/admin_password = glance/g\" /etc/glance/glance-api.conf" ,
           "sed -i \"s/connection = mysql:\/\/glance:glance@.*/connection = mysql:\/\/glance:glance@%s\/glance/g\" /etc/glance/glance-api.conf"%ya1['glance'] ,
           "sed -i \"s/auth_host.*/auth_host = %s/g\" /etc/glance/glance-api.conf"%ya1['keystone'] ,
           "sed -i \"s/qpid_host.*/qpid_host = %s/g\" /etc/glance/glance-api.conf"%ya1['nova'] ,
           "sed -i \"s/auth_host.*/auth_host = %s/g\" /etc/glance/glance-registry.conf"%ya1['keystone'] ,
           "sed -i \"s/admin_tenant_name.*/admin_tenant_name = service/g\" /etc/glance/glance-registry.conf" ,
           "sed -i \"s/admin_user.*/admin_user = glance/g\" /etc/glance/glance-registry.conf" ,
           "sed -i \"s/admin_password.*/admin_password = glance/g\" /etc/glance/glance-registry.conf" ,
           "sed -i \"s/#flavor=/flavor=keystone/g\" /etc/glance/glance-registry.conf" ,
           "sed -i \"s/connection = mysql:\/\/glance:glance@.*/connection = mysql:\/\/glance:glance@%s\/glance/g\" /etc/glance/glance-registry.conf"%ya1['glance']
           ]
    for i in cmd:
        basefunction.run_command(i,None,logger)

    cmd = [
           "sed -i \"/admin_tenant_name/d\" /etc/glance/glance-api-paste.ini" ,
           "sed -i \"/admin_user/d\" /etc/glance/glance-api-paste.ini" ,
           "sed -i \"/admin_password/d\" /etc/glance/glance-api-paste.ini" 
           ]
    for i in cmd:
        basefunction.run_command(i,None,logger)
    
    strr = """admin_tenant_name = service
admin_user = glance
admin_password = glance"""
              
    f = open("/etc/glance/glance-api-paste.ini","a")
    f.write(strr)
    f.close()
    
    cmd = [
           "glance-manage db_sync" ,
           "glance-registry --config-file /etc/glance/glance-registry.conf --debug --verbose &" ,
           "service openstack-glance-api start && chkconfig openstack-glance-api on"
           ]
    for i in cmd:
        re == basefunction.run_command(i,None,logger)
        if re == False:
            nc_message("error")
            logger.info("glance db error")
            logmonitor.log_read(server_ip)
            sys.exit(-1)
     
    cmd = "sed -i \"/glance-registry/d\" /etc/rc.local" 
    basefunction.run_command(cmd,None,logger)
          
    strr = "glance-registry --config-file /etc/glance/glance-registry.conf --debug --verbose &" 
    f = open("/etc/rc.local","a")
    f.write(strr)
    f.close()
Beispiel #16
0
def log_message(message):
    ip = ya['cobbler_server']['ip']
    name = ya['my_cfg']['hostname']
    cmd = "telnet %s 3337 & ;sleep 2 ;echo \"%s:%s\" | nc %s 9999" %(ip,name,message,ip)
    basefunction.run_command(cmd,None,logger)  
Beispiel #17
0
 def set_puppet(self):
     logger.info("start to set puppet")
     shutil.rmtree("/etc/puppet")
     shutil.copytree("%s/puppet/"%dirr, "/etc/puppet/")
     cmd = ["service puppetmaster restart ; chkconfig puppetmaster on"]
     basefunction.run_command(cmd, None, logger)
Beispiel #18
0
def set_keystone():
    logger.info("Start to set Keystone")
    rpm_name = "openstack-utils openstack-keystone python-keystoneclient PyYAML"
    basefunction.install_rpm(rpm_name,None,logger)
    rpm_name = ["openstack-utils" ,"openstack-keystone" ,"python-keystoneclient" ,"PyYAML"]
    for i in rpm_name:
        re = basefunction.check_rpm(i,None,logger)
        if re == False:
            nc_message("error")
            logger.info("Set Keystone error")
            sys.exit(-1)
    
    cmd = """mysql -uroot -p%s <<EOF
            DROP DATABASE keystone;
EOF"""%ya['my_cfg']['my_sql_password']

    basefunction.run_command(cmd,None,logger)
    
    cmd = """mysql -uroot -p%s <<EOF
            CREATE DATABASE keystone;
            GRANT ALL ON keystone.* TO 'keystone'@'%%' IDENTIFIED BY 'keystone';
            GRANT ALL ON keystone.* TO 'keystone'@'%s' IDENTIFIED BY 'keystone';
EOF""" %(ya['my_cfg']['my_sql_password'],ya['my_cfg']['hostname'])

    re = basefunction.run_command(cmd,None,logger)
    if re == False:
        nc_message("error")
        logger.info("create Keystone db error")
        logmonitor.log_read(server_ip)
        sys.exit(-1)
        
    cmd = [
           "ADMIN_TOKEN=$(openssl rand -hex 10);openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN;sed -i.bak \"s/token:.*/token:    $ADMIN_TOKEN/g\" config.yaml" ,
           "sed -i \"s/connection = mysql:\/\/keystone:keystone@.*/connection = mysql:\/\/keystone:keystone@%s\/keystone/g\" /etc/keystone/keystone.conf"%ya1['keystone'] ,
           "service openstack-keystone start &&  chkconfig openstack-keystone on" ,
           "keystone-manage db_sync" 
           ]
    
    for i in cmd:
        re == basefunction.run_command(i,None,logger)
    if re == False:
        nc_message("error")
        logger.info("Keystone db error")
        logmonitor.log_read(server_ip)
        sys.exit(-1)
        
    cmd = [
           "service openstack-keystone restart" ,
           "sleep 10"
           ]
    for i in cmd:
        basefunction.run_command(i,None,logger)
           
    f = open("config.yaml",'r')
    ya2 = yaml.load(f)
    f.close() 
    ya2['endpoint'] = "http://%s:35357/v2.0" %ya1['keystone']
    ya2['services and endpoints'][0]['publicurl'] = "http://%s:5000/v2.0" %ya1['keystone']
    ya2['services and endpoints'][0]['internalurl'] = "http://%s:5000/v2.0" %ya1['keystone']
    ya2['services and endpoints'][0]['adminurl'] = "http://%s:35357/v2.0" %ya1['keystone']
 
    ya2['services and endpoints'][1]['publicurl'] = "http://%s:8774/v2/%%(tenant_id)s" %ya1['nova']
    ya2['services and endpoints'][1]['internalurl'] = "http://%s:8774/v2/%%(tenant_id)s" %ya1['nova']
    ya2['services and endpoints'][1]['adminurl'] = "http://%s:8774/v2/%%(tenant_id)s" %ya1['nova']
    
    ya2['services and endpoints'][2]['publicurl'] = "http://%s:8776/v1/%%(tenant_id)s" %ya1['nova']
    ya2['services and endpoints'][2]['internalurl'] = "http://%s:8776/v1/%%(tenant_id)s" %ya1['nova']
    ya2['services and endpoints'][2]['adminurl'] = "http://%s:8776/v1/%%(tenant_id)s" %ya1['nova']

    ya2['services and endpoints'][3]['publicurl'] = "http://%s:9292/v1" %ya1['glance']
    ya2['services and endpoints'][3]['internalurl'] = "http://%s:9292/v1" %ya1['glance']
    ya2['services and endpoints'][3]['adminurl'] = "http://%s:9292/v1" %ya1['glance']
    f = open("config.yaml",'w')        
    yaml.dump(ya2,f,default_flow_style=False)
    f.close()
    import keystoneinit
    config = keystoneinit.parse_config("config.yaml")
    keystoneinit.configure_keystone(config)
    
    logger.info("install keystone successfully")
Beispiel #19
0
     os.mkdir("%s/nodes" %log_dir)
 logger = basefunction.initlog("install")
 errorMessage = ""
 create_repo()
 rpm_name="telnet telnet-server syslinux cobbler puppet-server Django14 python-celery django-celery rabbitmq-server python-amqplib django-picklefield dhcp vsftpd ntpd"
 basefunction.install_rpm(rpm_name, None, logger)
 
 rpm_name=["telnet","telnet-server","syslinux","cobbler","puppet-server","Django14","python-celery","django-celery","rabbitmq-server","python-amqplib","django-picklefield","vsftpd"]
 for i in rpm_name:
     re = basefunction.check_rpm(i, None, logger)
     if re == False:
         print "rpm %s not installed" %i
         sys.exit()
         
 cmd = "sed -i \"/server    127.127.1.0/d\" /etc/ntp.conf"
 basefunction.run_command(cmd, None, logger)
 
 f = open("/etc/ntp.conf","a")
 f.write("\nserver    127.127.1.0\n")
 f.close()
 
 cmd = "sed -i \"s/disable.*/disable  = no /g\" /etc/xinetd.d/telnet"
 basefunction.run_command(cmd, None, logger)
 
 shutil.copy("%s/config/nc_listen"%dirr, "/etc/xinetd.d/nc_listen")
 shutil.copy("%s/config/log_listen"%dirr, "/etc/xinetd.d/log_listen")
 
 cmd = """sed -i \"/nc_listen/d\" /etc/services;
          echo "nc_listen       3336/tcp                # nc_listen\" >> /etc/services;
          sed -i \"/log_listen/d\" /etc/services;
          echo \"log_listen       3337/tcp                # log_listen\" >> /etc/services;
Beispiel #20
0
    if ya['my_cfg']['ip'] == ya1['nova']:
        
        strr = """DEVICE=br100
TYPE=Bridge
ONBOOT=yes
DELAY=0
BOOTPROTO=static
IPADDR=192.168.100.2
NETMASK=255.255.255.0"""
        
        f = open("/etc/sysconfig/network-scripts/ifcfg-br100","w")
        f.write(strr)
        f.close()
        
        cmd = "brctl addbr br100;service network restart"
        basefunction.run_command(cmd, None, logger)
        
        set_nova()
        
        for i in ["api","objectstore","compute","network","volume","scheduler","cert","novncproxy","consoleauth"]:
            cmd = "service openstack-nova-%s stop;chkconfig openstack-nova-%s on" %(i,i)
            basefunction.run_command(cmd, None, logger)
    
        cmd = "nova-manage db sync"
        re = basefunction.run_command(cmd, None, logger)
        if re == False:
            nc_message("error")
            logger.error("nova-manage db sync error")
            logmonitor.log_read(server_ip)
            sys.exit()
        
Beispiel #21
0
def set_nova():
    logger.info("Start set nova")
    
    rpm_name = "openstack-utils openstack-nova openstack-nova-novncproxy  memcached qpid-cpp-server openstack-keystone python-keystoneclient"
    basefunction.install_rpm(rpm_name,None,logger)
    rpm_name = ["openstack-utils","openstack-nova","openstack-nova-novncproxy","memcached","qpid-cpp-server"]
    for i in rpm_name:
        re = basefunction.check_rpm(i,None,logger)
        if re == False:
            nc_message("error")
            logger.info("Set Keystone error")
            sys.exit(-1)
    
    cmd = [
           "sed -i \"s/admin_tenant_name.*/admin_tenant_name = service/g\" /etc/nova/nova.conf" ,
           "sed -i \"s/admin_user.*/admin_user = nova/g\" /etc/nova/nova.conf" ,
           "sed -i \"s/admin_password.*/admin_password = nova/g\" /etc/nova/nova.conf" ,
           "setenforce permissive" ,
           "sed -i 's/auth=yes/auth=no/g' /etc/qpidd.conf" ,
           "service qpidd start;chkconfig qpidd on"
           ]
    
    for i in cmd:
        basefunction.run_command(i,None,logger)
    
    cmd = """mysql -uroot -p%s <<EOF
            CREATE DATABASE nova;
            GRANT ALL ON nova.* TO 'nova'@'%%' IDENTIFIED BY 'nova';
            GRANT ALL ON nova.* TO 'nova'@'%s' IDENTIFIED BY 'nova';
EOF""" %(ya['my_cfg']['my_sql_password'],ya['my_cfg']['hostname'])

    basefunction.run_command(cmd,None,logger)

    
    
    nova_ip = ya1['nova']
    glance_ip = ya1['glance']
    keystone_ip = ya1['keystone']
    my_ip = ya['my_cfg']['ip']
    net_manager = ya['my_cfg']['network_manager']
    fix_r = ya['my_cfg']['fixed_range']
    flat_i = ya['my_cfg']['flat_interface']
    flat_b = ya['my_cfg']['flat_network_bridge']
    libv_t = ya['my_cfg']['libvirt_type']
    
    cmd = """sed -e \"
                 s,connection = mysql://nova:nova@.*,connection = mysql://nova:nova@%s/nova,g;
                 s,my_ip =.*,my_ip = %s,g;
                 s,network_manager =.*,network_manager = %s,g;
                 s,fixed_range =.*,fixed_range = %s,g;
                 s,flat_interface =.*,flat_interface = %s,g;
                 s,flat_network_bridge =.*,flat_network_bridge = %s,g;
                 s,libvirt_type =.*,libvirt_type = %s,g
                 s,novncproxy_base_url =.*,novncproxy_base_url = http://%s:6080/vnc_auto.html,g;
                 s,vncserver_proxyclient_address =.*,vncserver_proxyclient_address = %s,g;
                 s,vncserver_listen =.*,vncserver_listen = %s,g;
                 s,ec2_dmz_host=.*,ec2_dmz_host=%s,g;
                 s,s3_host=.*,s3_host=%s,g;
                 s,qpid_hostname=.*,qpid_hostname=%s,g;
                 s,glance_api_servers=.*,glance_api_servers=%s:9292,g;
                 s,auth_host =.*,auth_host = %s,g;
                 \" /opt/openstack/nova.conf > /etc/nova/nova.conf""" %(nova_ip,my_ip,net_manager,fix_r,flat_i,flat_b,libv_t,nova_ip,nova_ip,nova_ip,nova_ip,nova_ip,nova_ip,glance_ip,keystone_ip)
    
    basefunction.run_command(cmd, None, logger)
                 
    cmd = "service libvirtd restart;chkconfig libvirtd on"
    basefunction.run_command(cmd, None, logger)