From 02523b9a7e66e361947ae10093694498f1a82c64 Mon Sep 17 00:00:00 2001 From: Xicheng Chang Date: Sat, 9 Jul 2016 19:26:55 -0400 Subject: [PATCH] Trim some install scripts for agent install Change-Id: I80e4605d80a5eaf186e3e80a061590739e2ed592 --- compass/db/api/switch.py | 2 + install/dependency.sh | 14 ++++-- install/install.conf | 2 + install/install.sh | 38 ++++++++------- install/prepare.sh | 101 ++++++++++++++++++++------------------- 5 files changed, 87 insertions(+), 70 deletions(-) diff --git a/compass/db/api/switch.py b/compass/db/api/switch.py index 53814b84..647eec0d 100644 --- a/compass/db/api/switch.py +++ b/compass/db/api/switch.py @@ -653,6 +653,8 @@ def list_switchmachines_hosts(user=None, session=None, **filters): switch_machines = utils.list_db_objects( session, models.SwitchMachine, **filters ) + if not user.is_admin and len(switch_machines): + switch_machines = [m for m in switch_machines if m.machine.owner_id == user.id] return _filter_switch_machines_hosts( switch_machines ) diff --git a/install/dependency.sh b/install/dependency.sh index 1353bf72..29ee1183 100755 --- a/install/dependency.sh +++ b/install/dependency.sh @@ -11,8 +11,12 @@ if [ "$tempest" == "true" ]; then fi fi -sudo yum --enablerepo=compass_install install -y $MYSQL -sudo yum --enablerepo=compass_install --nogpgcheck install -y rsyslog logrotate ntp iproute openssh-clients python python-devel git wget syslinux amqp rabbitmq-server mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp net-snmp-python unzip openssl openssl098e ca-certificates mysql-devel mysql-server mysql MySQL-python python-virtualenv python-setuptools python-pip bc libselinux-python libffi-devel openssl-devel +if [ "$FULL_COMAPSS_SERVER" == "true" ]; then + sudo yum --enablerepo=compass_install install -y $MYSQL + sudo yum --enablerepo=compass_install --nogpgcheck install -y rsyslog logrotate ntp iproute openssh-clients python python-devel git wget syslinux amqp rabbitmq-server mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp net-snmp-python unzip openssl openssl098e ca-certificates mysql-devel mysql-server mysql MySQL-python python-virtualenv python-setuptools python-pip bc libselinux-python libffi-devel openssl-devel +else + sudo yum --enablerepo=compass_install --nogpgcheck install -y rsyslog logrotate ntp iproute openssh-clients python python-devel git wget syslinux amqp dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp net-snmp-python unzip openssl openssl098e ca-certificates python-virtualenv python-setuptools python-pip bc libselinux-python libffi-devel openssl-devel +fi sudo yum --setopt=tsflags=noscripts -y remove redis # sudo yum --enablerepo=remi,remi-test install -y redis sudo yum --enablerepo=compass_install --nogpgcheck install -y redis @@ -57,5 +61,7 @@ sudo systemctl enable sshd.service sudo systemctl enable rsyslog.service sudo systemctl enable ntpd.service sudo systemctl enable redis.service -sudo systemctl enable mysqld.service -sudo systemctl enable rabbitmq-server.service +if [ "$FULL_COMAPSS_SERVER" == "true" ]; then + sudo systemctl enable mysqld.service + sudo systemctl enable rabbitmq-server.service +fi diff --git a/install/install.conf b/install/install.conf index 30d09ad7..b09b4db9 100755 --- a/install/install.conf +++ b/install/install.conf @@ -1,6 +1,8 @@ ##################################### # Config File for Compass Installer # ##################################### +# Agent or Fullserver +export FULL_COMPASS_SERVER="false" # User Email export USER_EMAIL="lab@huawei.com" # OS_INSTALLER indicates the tool for OS provisioning, default is 'cobbler'. diff --git a/install/install.sh b/install/install.sh index 8ea8b958..ae6fcc3c 100755 --- a/install/install.sh +++ b/install/install.sh @@ -343,8 +343,10 @@ echo "Install the Package Installer Tool" # source ${COMPASSDIR}/install/chef.sh || exit $? source ${COMPASSDIR}/install/ansible.sh || exit $? -echo "Download and install Compass Web" -source ${COMPASSDIR}/install/compass_web.sh || exit $? +if [ "$FULL_COMAPSS_SERVER" == "true"]; then + echo "Download and install Compass Web" + source ${COMPASSDIR}/install/compass_web.sh || exit $? +fi echo "Download and Setup Compass and related services" source ${COMPASSDIR}/install/compass.sh || exit $? @@ -352,19 +354,21 @@ source ${COMPASSDIR}/install/compass.sh || exit $? figlet -ctf slant Installation Complete! echo -e "It takes\x1b[32m $SECONDS \x1b[0mseconds during the installation." -machine_list_conf="MACHINE_LIST = [ { '${switch_IP}': [ " -for host in ${PXE_MACs[@]}; do - port=$(echo ${host} | awk -F , '{print $1}' | awk -F = '{print $2}') - mac=$(echo ${host} | awk -F , '{print $2}' | awk -F = '{print $2}') - machine_list_conf="${machine_list_conf}${comma}\n{'port': '${port}', 'mac': '${mac}', 'vlan': '0'}" - comma="," -done -machine_list_conf="${machine_list_conf}\n ] } ]" -sudo echo -e ${machine_list_conf} > /etc/compass/machine_list/machine_list.conf +if [ "$FULL_COMPASS_SERVER" == "false" ]; then + machine_list_conf="MACHINE_LIST = [ { '${switch_IP}': [ " + for host in ${PXE_MACs[@]}; do + port=$(echo ${host} | awk -F , '{print $1}' | awk -F = '{print $2}') + mac=$(echo ${host} | awk -F , '{print $2}' | awk -F = '{print $2}') + machine_list_conf="${machine_list_conf}${comma}\n{'port': '${port}', 'mac': '${mac}', 'vlan': '0'}" + comma="," + done + machine_list_conf="${machine_list_conf}\n ] } ]" + sudo echo -e ${machine_list_conf} > /etc/compass/machine_list/machine_list.conf -rm -rf /var/ansible/roles/keystone/vars/Debian.yml 2>/dev/null -cp ${COMPASSDIR}/misc/adapter_changes/Debian.yml /var/ansible/roles/keystone/vars/ -rm -rf /var/ansible/roles/keystone/tasks/keystone_install.yml 2>/dev/null -cp ${COMPASSDIR}/misc/adapter_changes/keystone_install.yml /var/ansible/roles/keystone/tasks/ -rm -rf /var/ansible/openstack_mitaka/HA-ansible-multinodes.yml 2>/dev/null -cp ${COMPASSDIR}/misc/adapter_changes/HA-ansible-multinodes.yml /var/ansible/openstack_mitaka/ + rm -rf /var/ansible/roles/keystone/vars/Debian.yml 2>/dev/null + cp ${COMPASSDIR}/misc/adapter_changes/Debian.yml /var/ansible/roles/keystone/vars/ + rm -rf /var/ansible/roles/keystone/tasks/keystone_install.yml 2>/dev/null + cp ${COMPASSDIR}/misc/adapter_changes/keystone_install.yml /var/ansible/roles/keystone/tasks/ + rm -rf /var/ansible/openstack_mitaka/HA-ansible-multinodes.yml 2>/dev/null + cp ${COMPASSDIR}/misc/adapter_changes/HA-ansible-multinodes.yml /var/ansible/openstack_mitaka/ +fi diff --git a/install/prepare.sh b/install/prepare.sh index 613bcbf3..8405a14e 100755 --- a/install/prepare.sh +++ b/install/prepare.sh @@ -104,58 +104,61 @@ else fi #update mysqld -echo "update mysqld" -mkdir -p /var/log/mysql -chmod -R 777 /var/log/mysql -sleep 10 -systemctl restart mysql.service -sudo sleep 10 -systemctl status mysql.service -if [[ "$?" != "0" ]]; then - echo "failed to restart mysqld" - exit 1 -else - echo "mysqld restarted" -fi -MYSQL_USER=${MYSQL_USER:-root} -MYSQL_OLD_PASSWORD=${MYSQL_OLD_PASSWORD:-root} -MYSQL_PASSWORD=${MYSQL_PASSWORD:-root} -MYSQL_SERVER=${MYSQL_SERVER:-127.0.0.1} -MYSQL_PORT=${MYSQL_PORT:-3306} -MYSQL_DATABASE=${MYSQL_DATABASE:-compass} -# first time set mysql password -sudo mysqladmin -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u ${MYSQL_USER} -p"${MYSQL_OLD_PASSWORD}" password ${MYSQL_PASSWORD} -if [[ "$?" != "0" ]]; then -echo "setting up mysql initial password" -sudo mysqladmin -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u ${MYSQL_USER} password ${MYSQL_PASSWORD} -fi -mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "show databases;" -if [[ "$?" != "0" ]]; then - echo "mysql password set failed" - exit 1 -else - echo "mysql password set succeeded" -fi +if [ "$FULL_COMAPSS_SERVER" == "true"]; then + echo "update mysqld" + mkdir -p /var/log/mysql + chmod -R 777 /var/log/mysql + sleep 10 + systemctl restart mysql.service + sudo sleep 10 + systemctl status mysql.service + if [[ "$?" != "0" ]]; then + echo "failed to restart mysqld" + exit 1 + else + echo "mysqld restarted" + fi -sudo mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "drop database ${MYSQL_DATABASE}" -sudo mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "create database ${MYSQL_DATABASE}" -if [[ "$?" != "0" ]]; then - echo "mysql database set failed" - exit 1 -fi + MYSQL_USER=${MYSQL_USER:-root} + MYSQL_OLD_PASSWORD=${MYSQL_OLD_PASSWORD:-root} + MYSQL_PASSWORD=${MYSQL_PASSWORD:-root} + MYSQL_SERVER=${MYSQL_SERVER:-127.0.0.1} + MYSQL_PORT=${MYSQL_PORT:-3306} + MYSQL_DATABASE=${MYSQL_DATABASE:-compass} + # first time set mysql password + sudo mysqladmin -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u ${MYSQL_USER} -p"${MYSQL_OLD_PASSWORD}" password ${MYSQL_PASSWORD} + if [[ "$?" != "0" ]]; then + echo "setting up mysql initial password" + sudo mysqladmin -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u ${MYSQL_USER} password ${MYSQL_PASSWORD} + fi + mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "show databases;" + if [[ "$?" != "0" ]]; then + echo "mysql password set failed" + exit 1 + else + echo "mysql password set succeeded" + fi -sudo systemctl restart mysql.service -sudo systemctl status mysql.service -if [[ "$?" != "0" ]]; then - echo "mysqld is not started" - exit 1 -fi + sudo mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "drop database ${MYSQL_DATABASE}" + sudo mysql -h${MYSQL_SERVER} --port=${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "create database ${MYSQL_DATABASE}" + if [[ "$?" != "0" ]]; then + echo "mysql database set failed" + exit 1 + fi -sudo systemctl restart rabbitmq-server.service -sudo systemctl status rabbitmq-server.service -if [[ "$?" != "0" ]]; then - echo "rabbitmq-server is not started" - exit 1 + sudo systemctl restart mysql.service + sudo systemctl status mysql.service + if [[ "$?" != "0" ]]; then + echo "mysqld is not started" + exit 1 + fi + + sudo systemctl restart rabbitmq-server.service + sudo systemctl status rabbitmq-server.service + if [[ "$?" != "0" ]]; then + echo "rabbitmq-server is not started" + exit 1 + fi fi cd $SCRIPT_DIR