summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xci/build.sh68
-rw-r--r--ci/ks.cfg252
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/handlers/main.yml7
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_config.yml6
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_install.yml14
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/vars/Debian.yml6
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/vars/RedHat.yml8
-rw-r--r--deploy/adapters/ansible/roles/cinder-controller/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/cinder-volume/handlers/main.yml5
-rw-r--r--deploy/adapters/ansible/roles/cinder-volume/tasks/main.yml18
-rw-r--r--deploy/adapters/ansible/roles/cinder-volume/vars/Debian.yml1
-rw-r--r--deploy/adapters/ansible/roles/cinder-volume/vars/RedHat.yml11
-rw-r--r--deploy/adapters/ansible/roles/cinder-volume/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/common/tasks/main.yml16
-rw-r--r--deploy/adapters/ansible/roles/common/templates/hosts31
-rw-r--r--deploy/adapters/ansible/roles/common/templates/pip.conf2
-rw-r--r--deploy/adapters/ansible/roles/common/vars/Debian.yml5
-rw-r--r--deploy/adapters/ansible/roles/common/vars/RedHat.yml5
-rw-r--r--deploy/adapters/ansible/roles/common/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/dashboard/tasks/main.yml19
-rw-r--r--deploy/adapters/ansible/roles/dashboard/vars/Debian.yml6
-rw-r--r--deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml8
-rw-r--r--deploy/adapters/ansible/roles/dashboard/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/database/files/my.cnf60
-rw-r--r--deploy/adapters/ansible/roles/database/tasks/mariadb.yml14
-rw-r--r--deploy/adapters/ansible/roles/database/tasks/mysql.yml7
-rw-r--r--deploy/adapters/ansible/roles/database/templates/my-huge.cnf151
-rw-r--r--deploy/adapters/ansible/roles/database/templates/server.cnf47
-rw-r--r--deploy/adapters/ansible/roles/database/templates/wsrep.cnf2
-rw-r--r--deploy/adapters/ansible/roles/database/vars/Debian.yml8
-rw-r--r--deploy/adapters/ansible/roles/database/vars/RedHat.yml16
-rw-r--r--deploy/adapters/ansible/roles/database/vars/main.yml5
-rw-r--r--deploy/adapters/ansible/roles/glance/handlers/main.yml8
-rw-r--r--deploy/adapters/ansible/roles/glance/tasks/glance_config.yml4
-rw-r--r--deploy/adapters/ansible/roles/glance/tasks/glance_install.yml11
-rw-r--r--deploy/adapters/ansible/roles/glance/tasks/nfs.yml4
-rw-r--r--deploy/adapters/ansible/roles/glance/templates/glance-api.conf4
-rw-r--r--deploy/adapters/ansible/roles/glance/vars/Debian.yml12
-rw-r--r--deploy/adapters/ansible/roles/glance/vars/RedHat.yml11
-rw-r--r--deploy/adapters/ansible/roles/glance/vars/main.yml5
-rw-r--r--deploy/adapters/ansible/roles/ha/tasks/main.yml8
-rw-r--r--deploy/adapters/ansible/roles/ha/templates/failover.j22
-rw-r--r--deploy/adapters/ansible/roles/ha/templates/keepalived.conf1
-rw-r--r--deploy/adapters/ansible/roles/ha/vars/Debian.yml11
-rw-r--r--deploy/adapters/ansible/roles/ha/vars/RedHat.yml3
-rw-r--r--deploy/adapters/ansible/roles/ha/vars/main.yml10
-rw-r--r--deploy/adapters/ansible/roles/keystone/tasks/keystone_install.yml14
-rw-r--r--deploy/adapters/ansible/roles/keystone/vars/Debian.yml5
-rw-r--r--deploy/adapters/ansible/roles/keystone/vars/RedHat.yml8
-rw-r--r--deploy/adapters/ansible/roles/keystone/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml4
-rw-r--r--deploy/adapters/ansible/roles/mq/vars/Debian.yml6
-rw-r--r--deploy/adapters/ansible/roles/mq/vars/RedHat.yml4
-rw-r--r--deploy/adapters/ansible/roles/mq/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/neutron-common/handlers/main.yml12
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/handlers/main.yml15
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/tasks/main.yml40
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/templates/nova.conf2
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/vars/Debian.yml7
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/vars/RedHat.yml9
-rw-r--r--deploy/adapters/ansible/roles/neutron-compute/vars/main.yml4
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/handlers/main.yml26
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_config.yml3
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_install.yml16
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/templates/nova.conf2
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/vars/Debian.yml4
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/vars/RedHat.yml7
-rw-r--r--deploy/adapters/ansible/roles/neutron-controller/vars/main.yml6
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/files/xorp23
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/handlers/main.yml20
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/tasks/igmp-router.yml8
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/tasks/main.yml65
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/templates/nova.conf2
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/vars/Debian.yml13
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/vars/RedHat.yml14
-rw-r--r--deploy/adapters/ansible/roles/neutron-network/vars/main.yml7
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/handlers/main.yml5
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/tasks/main.yml10
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/templates/nova.conf2
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/vars/Debian.yml2
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/vars/RedHat.yml8
-rw-r--r--deploy/adapters/ansible/roles/nova-compute/vars/main.yml4
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/handlers/main.yml20
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/tasks/nova_config.yml7
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/tasks/nova_install.yml15
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/templates/nova.conf2
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/vars/Debian.yml1
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/vars/RedHat.yml16
-rw-r--r--deploy/adapters/ansible/roles/nova-controller/vars/main.yml4
89 files changed, 1006 insertions, 364 deletions
diff --git a/ci/build.sh b/ci/build.sh
new file mode 100755
index 00000000..490aafe3
--- /dev/null
+++ b/ci/build.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+set -ex
+SCRIPT_DIR=`cd ${BASH_SOURCE[0]%/*};pwd`
+WORK_DIR=$SCRIPT_DIR/work
+
+sudo rm -rf $WORK_DIR
+mkdir -p $WORK_DIR
+
+COMPASS_CORE=${COMPASS_CORE:-http://github.com/baigk/compass-core.git}
+COMPASS_WEB=${COMPASS_WEB:-http://github.com/baigk/compass-web.git}
+COMPASS_INSTALL=${COMPASS_INSTALL:-http://github.com/baigk/compass-install.git}
+COMPASS_ADAPTERS=${COMPASS_ADAPTERS:-http://github.com/baigk/compass-adapters.git}
+PACKAGE_URL=${PACKAGE_URL:-http://192.168.127.11:9999/xh/work/package}
+
+cd $WORK_DIR
+
+# get base iso
+wget -O centos_base.iso $PACKAGE_URL/centos_base.iso
+
+# get ubuntu ppa package
+wget -O ubuntu_ppa.tar.gz $PACKAGE_URL/ubuntu_ppa.tar.gz
+
+# get ubuntu iso
+wget -O Ubuntu-14.04-x86_64.iso $PACKAGE_URL/Ubuntu-14.04-x86_64.iso
+
+# get centos iso
+wget -O CentOS-7-x86_64-Minimal-1503-01.iso $PACKAGE_URL/CentOS-7-x86_64-Minimal-1503-01.iso
+
+# get cenos common ppa package
+wget -O centos_7_1_common_ppa_repo.tar.gz $PACKAGE_URL/centos_7_1_common_ppa_repo.tar.gz
+
+# get centos openstack ppa package
+wget -O centos_7_1_openstack_juno_ppa_repo.tar.gz $PACKAGE_URL/centos_7_1_openstack_juno_ppa_repo.tar.gz
+
+wget -O loaders.tar.gz $PACKAGE_URL/loaders.tar.gz
+# mount base iso
+mkdir -p base
+sudo mount -o loop centos_base.iso base
+cd base;find .|cpio -pd ../new;cd -
+sudo umount base
+chmod 755 ./new -R
+
+# main process
+mkdir -p new/repos new/compass new/bootstrap new/pip new/guestimg
+cp ubuntu_ppa.tar.gz new/repos
+cp Ubuntu-14.04-x86_64.iso new/repos
+cp CentOS-7-x86_64-Minimal-1503-01.iso new/repos
+cp centos_7_1_common_ppa_repo.tar.gz new/repos
+cp centos_7_1_openstack_juno_ppa_repo.tar.gz new/repos
+cp loaders.tar.gz new
+wget -O new/guestimg/cirros-0.3.3-x86_64-disk.img $PACKAGE_URL/cirros-0.3.3-x86_64-disk.img
+wget -O new/pip/pexpect-3.3.tar.gz https://pypi.python.org/packages/source/p/pexpect/pexpect-3.3.tar.gz#md5=0de72541d3f1374b795472fed841dce8
+
+cd new/compass
+git clone ${COMPASS_CORE}
+git clone ${COMPASS_INSTALL}
+git clone ${COMPASS_ADAPTERS}
+git clone ${COMPASS_WEB}
+
+find . -name ".git" |xargs rm -rf
+
+cd $WORK_DIR
+cp -rf $SCRIPT_DIR/ks.cfg new/isolinux/ks.cfg
+rm -rf new/.rr_moved
+sudo mkisofs -quiet -r -J -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -hide-rr-moved -x "lost+found:" -o compass.iso new/
+
+# delete tmp file
+sudo rm -rf new base ubuntu_ppa.tar.gz centos_base.iso Ubuntu-14.04-x86_64.iso
diff --git a/ci/ks.cfg b/ci/ks.cfg
new file mode 100644
index 00000000..036a8d90
--- /dev/null
+++ b/ci/ks.cfg
@@ -0,0 +1,252 @@
+install
+text
+cdrom
+reboot --eject
+lang en_US.UTF-8
+keyboard us
+rootpw root
+timezone --utc Etc/UTC
+firewall --disabled
+selinux --disabled
+unsupported_hardware
+skipx
+
+# NEVER ever place zerombr here, it breaks automated installation
+%include /tmp/bootloader.ks
+%include /tmp/partition.ks
+
+# PREINSTALL SECTION
+# HERE ARE COMMANDS THAT WILL BE LAUNCHED BEFORE
+# INSTALLATION PROCESS ITSELF
+%pre
+#!/bin/sh
+
+# hard drives
+drives=(`ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`)
+default_drive=${drives[0]}
+
+for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
+
+tgtdrive=$default_drive
+format_confirmed="no"
+
+if [ ${#drives[@]} -lt 1 ]; then
+ exec < /dev/tty3 > /dev/tty3 2>&1
+ chvt 3
+ clear
+ echo
+ echo '********************************************************************'
+ echo '* E R R O R *'
+ echo '* *'
+ echo '* There is no suitable media available for installation. *'
+ echo '* Please attach a drive and try again. *'
+ echo '* *'
+ echo '********************************************************************'
+ echo
+ read -p "Press Enter to shut down the system: " _
+ poweroff
+fi
+
+# verify tgtdrive is at least 30GB
+tgtdrivesize=$(( $(cat "/sys/class/block/${tgtdrive}/size") / 2 / 1024 ))
+if [ $tgtdrivesize -lt 30720 ]; then
+ exec < /dev/tty3 > /dev/tty3 2>&1
+ chvt 3
+ clear
+ echo
+ echo '********************************************************************'
+ echo '* E R R O R *'
+ echo '* *'
+ echo '* Your disk is under 30GB in size. Installation cannot continue. *'
+ echo '* Restart installation with a larger disk. *'
+ echo '* *'
+ echo '********************************************************************'
+ echo
+ read -p "Press Enter to restart: " _
+ reboot
+fi
+
+vgremove -ff os
+dd if=/dev/zero of=/dev/${tgtdrive} bs=10M count=10
+sleep 3
+
+hdparm -z /dev/${tgtdrive}
+parted -s /dev/${tgtdrive} mklabel gpt
+parted -a none -s /dev/${tgtdrive} unit MiB mkpart primary 0 24
+parted -s /dev/${tgtdrive} set 1 bios_grub on
+parted -a none -s /dev/${tgtdrive} unit MiB mkpart primary fat16 24 224
+parted -s /dev/${tgtdrive} set 2 boot on
+parted -a none -s /dev/${tgtdrive} unit MiB mkpart primary 224 424
+sleep 3
+hdparm -z /dev/${tgtdrive}
+
+# partition
+echo > /tmp/partition.ks
+echo "partition /boot --onpart=/dev/${tgtdrive}3" >> /tmp/partition.ks
+echo "partition pv.001 --ondisk=${tgtdrive} --size=30000 --grow" >> /tmp/partition.ks
+echo "volgroup os pv.001" >> /tmp/partition.ks
+echo "logvol swap --vgname=os --recommended --name=swap" >> /tmp/partition.ks
+echo "logvol / --vgname=os --size=10000 --name=root --fstype=ext4" >> /tmp/partition.ks
+echo "logvol /var --vgname=os --size=10000 --percent 60 --grow --name=var --fstype=ext4" >> /tmp/partition.ks
+echo "logvol /var/log --vgname=os --size=4096 --percent 40 --grow --name=varlog --fstype=ext4" >> /tmp/partition.ks
+
+# bootloader setting
+echo "bootloader --location=mbr --driveorder=${tgtdrive} --append=' biosdevname=0 crashkernel=none'" > /tmp/bootloader.ks
+%end
+
+%packages --nobase --excludedocs
+wget
+git
+yum
+cobbler
+cobbler-web
+createrepo
+mkisofs
+syslinux
+debmirror
+pykickstart
+cman
+bind
+rsync
+dhcp
+xinetd
+tftp-server
+gcc
+httpd
+libselinux-python
+python-setuptools
+python-devel
+mysql-devel
+mysql-server
+mysql
+MySQL-python
+redis
+mod_wsgi
+rabbitmq-server
+nfs-utils
+
+%post
+echo -e "modprobe nf_conntrack_ipv4\nmodprobe nf_conntrack_ipv6\nmodprobe nf_conntrack_tftp\nmodprobe nf_nat_tftp" >> /etc/rc.modules
+chmod +x /etc/rc.modules
+echo -e "net.nf_conntrack_max=1048576" >> /etc/sysctl.conf
+mkdir -p /var/log/coredump
+echo -e "kernel.core_pattern=/var/log/coredump/core.%e.%p.%h.%t" >> /etc/sysctl.conf
+chmod 777 /var/log/coredump
+echo -e "* soft core unlimited\n* hard core unlimited" >> /etc/security/limits.conf
+
+########################### post install before chroot ####################
+%post --nochroot --log=/mnt/sysimage/root/anaconda-post-before-chroot.log
+#!/bin/sh
+set -x
+SOURCE="/mnt/sysimage/tmp/source"
+for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
+
+mkdir -p "${SOURCE}"
+mount -o bind "/mnt/source" "${SOURCE}"
+
+########################### post install after chroot ####################
+%post --log=/root/anaconda-post-after-chroot.log
+#!/bin/bash
+set -x
+
+function save_nic_cfg() {
+ scrFile="/etc/sysconfig/network-scripts/ifcfg-$1"
+ sed -i -e 's#^\(HOSTNAME=\).*$#\1'"$hostname"'#' /etc/sysconfig/network
+ grep -q "^\s*$2\s+$hostname" /etc/hosts || echo "$2 $hostname" >> /etc/hosts
+
+ echo DEVICE=$1> $scrFile
+ echo ONBOOT=yes >> $scrFile
+ echo NM_CONTROLLED=no >> $scrFile
+ echo HWADDR=$4 >> $scrFile
+ echo USERCTL=no >> $scrFile
+ echo PEERDNS=no >> $scrFile
+ echo BOOTPROTO=static >> $scrFile
+ echo IPADDR=$2 >> $scrFile
+ echo NETMASK=$3 >> $scrFile
+}
+
+function save_gateway() {
+ echo GATEWAY=$gw >> /etc/sysconfig/network
+ search="domain $domain\nsearch $domain"
+ echo -e "${search}\nnameserver 127.0.0.1" > /etc/resolv.conf
+ [ $dns1 ] && echo -e "${search}\nnameserver $dns1" > /etc/resolv.conf
+ [ $dns1 ] && echo -e "${search}\nnameserver $dns1" > /etc/dnsmasq.upstream
+ [ $dns2 ] && echo "nameserver $dns2" >> /etc/resolv.conf
+ [ $dns2 ] && echo "nameserver $dns2" >> /etc/dnsmasq.upstream
+
+ if [[ -z "$dns1" && -z "$dns2" ]]; then
+ echo "nameserver $gw" >> /etc/resolv.conf
+ fi
+}
+# Default FQDN
+hostname="compass"
+
+for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
+domain=$hostname
+gw=$gw
+
+install_ip=$install_ip
+install_netmask=$install_netmask
+install_intf="eth1"
+install_hwaddr=`ifconfig $install_intf | grep -i hwaddr | sed -e 's#^.*hwaddr[[:space:]]*##I'`
+
+mgmt_ip=$mgmt_ip
+mgmt_netmask=$mgmt_netmask
+mgmt_intf="eth0"
+mgmt_hwaddr=`ifconfig $mgmt_intf | grep -i hwaddr | sed -e 's#^.*hwaddr[[:space:]]*##I'`
+
+save_nic_cfg $install_intf $install_ip $install_netmask $install_hwaddr
+save_nic_cfg $mgmt_intf $mgmt_ip $mgmt_netmask $mgmt_hwaddr
+save_gateway
+
+# already chroot
+SOURCE=/tmp/source
+FS=/tmp/fs
+
+echo
+mkdir -p ${SOURCE}
+mkdir -p ${FS}
+
+repodir="/var/lib/install_iso"
+
+# Copying Centos files
+mkdir -p ${repodir}
+cp -r ${SOURCE} ${repodir}/source
+
+cp -rf ${SOURCE} ${repodir}/source
+rm -rf ${repodir}/source/bootstrap/ \
+ ${repodir}/source/compass/ \
+ ${repodir}/source/guestimg/ \
+ ${repodir}/source/pip/ \
+ ${repodir}/source/repos
+
+mkdir -p /root/.ssh
+chmod 700 /root/.ssh
+
+cat ${SOURCE}/bootstrap/boot.rsa.pub >> /root/.ssh/authorized_keys
+cp -rf ${SOURCE}/compass/* /opt
+cp -rf ${SOURCE}/repos/* /opt
+cp -rf ${SOURCE}/loaders.tar.gz /opt
+
+mkdir -p /var/www
+
+cp -rf ${SOURCE}/pip /var/www/pip
+cp -rf ${SOURCE}/guestimg /var/www/guestimg
+
+# Prepare local repository specification
+rm /etc/yum.repos.d/CentOS*.repo
+cat > /etc/yum.repos.d/install_iso.repo << EOF
+[install_iso]
+name=local repo
+baseurl=file:$repodir/source
+gpgcheck=0
+EOF
+
+# Disable GSSAPI in ssh server config
+sed -i -e "/^\s*GSSAPICleanupCredentials yes/d" -e "/^\s*GSSAPIAuthentication yes/d" /etc/ssh/sshd_config
+sed -i 's/Defaults requiretty/#Defaults requiretty/g' /etc/sudoers
+sed -i 's/^UseDNS/#UseDNS/g' /etc/ssh/sshd_config
+echo "UseDNS no" >> /etc/ssh/sshd_config
+
+%end
+
diff --git a/deploy/adapters/ansible/roles/cinder-controller/handlers/main.yml b/deploy/adapters/ansible/roles/cinder-controller/handlers/main.yml
index ef671dd0..21dde842 100644
--- a/deploy/adapters/ansible/roles/cinder-controller/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/cinder-controller/handlers/main.yml
@@ -1,6 +1,5 @@
---
-- name: restart cinder-scheduler
- service: name=cinder-scheduler state=restarted enabled=yes
-- name: restart cinder-api
- service: name=cinder-api state=restarted enabled=yes
+- name: restart cinder control serveice
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_config.yml b/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_config.yml
index 7796cf77..fe9f7dc8 100644
--- a/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_config.yml
+++ b/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_config.yml
@@ -1,4 +1,7 @@
---
+- name: upload cinder conf
+ template: src=cinder.conf dest=/etc/cinder/cinder.conf
+
- name: sync cinder db
shell: su -s /bin/sh -c "cinder-manage db sync" cinder && cinder
register: result
@@ -6,8 +9,7 @@
retries: 5
delay: 3
notify:
- - restart cinder-scheduler
- - restart cinder-api
+ - restart cinder control serveice
- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_install.yml b/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_install.yml
index bd4a4604..24981e9c 100644
--- a/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_install.yml
+++ b/deploy/adapters/ansible/roles/cinder-controller/tasks/cinder_install.yml
@@ -1,15 +1,9 @@
---
- name: install cinder packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
-- name: generate cinder service list
+- name: generate common cinder service list
shell: echo {{ item }} >> /opt/service
- with_items: services
-
-- name: upload cinder conf
- template: src=cinder.conf dest=/etc/cinder/cinder.conf
- notify:
- - restart cinder-scheduler
- - restart cinder-api
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/cinder-controller/vars/Debian.yml b/deploy/adapters/ansible/roles/cinder-controller/vars/Debian.yml
index e1c096e7..a04fe8f0 100644
--- a/deploy/adapters/ansible/roles/cinder-controller/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/cinder-controller/vars/Debian.yml
@@ -1,9 +1,9 @@
---
+
packages:
- cinder-api
- cinder-scheduler
- - python-cinderclient
services:
- - "cinder-api"
- - "cinder-scheduler"
+ - cinder-api
+ - cinder-scheduler
diff --git a/deploy/adapters/ansible/roles/cinder-controller/vars/RedHat.yml b/deploy/adapters/ansible/roles/cinder-controller/vars/RedHat.yml
new file mode 100644
index 00000000..e059c271
--- /dev/null
+++ b/deploy/adapters/ansible/roles/cinder-controller/vars/RedHat.yml
@@ -0,0 +1,8 @@
+---
+packages:
+ - openstack-cinder
+ - python-oslo-db
+
+services:
+ - openstack-cinder-api
+ - openstack-cinder-scheduler
diff --git a/deploy/adapters/ansible/roles/cinder-controller/vars/main.yml b/deploy/adapters/ansible/roles/cinder-controller/vars/main.yml
new file mode 100644
index 00000000..561952c2
--- /dev/null
+++ b/deploy/adapters/ansible/roles/cinder-controller/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - python-cinderclient
+
+services_noarch: []
+
diff --git a/deploy/adapters/ansible/roles/cinder-volume/handlers/main.yml b/deploy/adapters/ansible/roles/cinder-volume/handlers/main.yml
index ad917ce5..55fbc2c9 100644
--- a/deploy/adapters/ansible/roles/cinder-volume/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/cinder-volume/handlers/main.yml
@@ -1,3 +1,4 @@
---
-- name: restart cinder-volume
- service: name=cinder-volume state=restarted enabled=yes
+- name: restart cinder-volume services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/cinder-volume/tasks/main.yml b/deploy/adapters/ansible/roles/cinder-volume/tasks/main.yml
index d727b66b..3700bcdd 100644
--- a/deploy/adapters/ansible/roles/cinder-volume/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/cinder-volume/tasks/main.yml
@@ -2,24 +2,24 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install cinder-volume and lvm2 packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
- name: generate cinder volume service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- name: check if physical device exists
stat: path={{ physical_device }}
- register: st
+ register: status
-- name: repace physical_device if st is false
+- name: replace physical_device if st is false
local_action: copy src=loop.yml dest=/tmp/loop.yml
- when: st.stat.exists == False
+ when: status.stat.exists == False
- name: load loop.yml
include_vars: /tmp/loop.yml
- when: st.stat.exists == False
+ when: status.stat.exists == False
- name: check if cinder-volumes is mounted
shell: ls /mnt
@@ -35,7 +35,7 @@
when: cindervolumes.stdout != 'cinder-volumes'
- name: get first lo device
- shell: ls /dev/loop* | egrep 'loop[0-9]+'|sed -n 1p
+ shell: losetup -f
register: first_lo
when: cindervolumes.stdout != 'cinder-volumes'
@@ -51,4 +51,4 @@
template: src=cinder.conf dest=/etc/cinder/cinder.conf
backup=yes
notify:
- - restart cinder-volume
+ - restart cinder-volume services
diff --git a/deploy/adapters/ansible/roles/cinder-volume/vars/Debian.yml b/deploy/adapters/ansible/roles/cinder-volume/vars/Debian.yml
index e68868cd..a66ba184 100644
--- a/deploy/adapters/ansible/roles/cinder-volume/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/cinder-volume/vars/Debian.yml
@@ -1,7 +1,6 @@
---
packages:
- cinder-volume
- - lvm2
services:
- cinder-volume
diff --git a/deploy/adapters/ansible/roles/cinder-volume/vars/RedHat.yml b/deploy/adapters/ansible/roles/cinder-volume/vars/RedHat.yml
new file mode 100644
index 00000000..123d4570
--- /dev/null
+++ b/deploy/adapters/ansible/roles/cinder-volume/vars/RedHat.yml
@@ -0,0 +1,11 @@
+---
+packages:
+ - openstack-cinder
+ - targetcli
+ - python-oslo-db
+ - MySQL-python
+ - lvm2
+
+services:
+ - openstack-cinder-volume
+ - lvm2-lvmetad
diff --git a/deploy/adapters/ansible/roles/cinder-volume/vars/main.yml b/deploy/adapters/ansible/roles/cinder-volume/vars/main.yml
new file mode 100644
index 00000000..036740c0
--- /dev/null
+++ b/deploy/adapters/ansible/roles/cinder-volume/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - lvm2
+
+services_noarch: []
+
diff --git a/deploy/adapters/ansible/roles/common/tasks/main.yml b/deploy/adapters/ansible/roles/common/tasks/main.yml
index 452f7683..1b20c0fd 100644
--- a/deploy/adapters/ansible/roles/common/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/common/tasks/main.yml
@@ -2,11 +2,11 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: first update pkgs
- apt: update_cache=yes
+ shell: "{{ ansible_pkg_mgr }} update"
- name: install packages
action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest"
- with_items: packages
+ with_items: packages | union(packages_noarch)
- name: update hosts files to all hosts
template: src=hosts
@@ -21,8 +21,10 @@
shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf
register: ip
-- name: update compass-core name and ip to hosts files
- shell: echo "# compass\n"{{ ip.stdout_lines[0] }} {{ name.stdout_lines[0] }} >> /etc/hosts
+- name: update compass-core name and ip to hosts files
+ shell: |
+ echo "# compass" >> /etc/hosts
+ echo {{ ip.stdout_lines[0] }} {{ name.stdout_lines[0] }} >> /etc/hosts
- name: create pip config directory
file: path=~/.pip state=directory
@@ -34,12 +36,12 @@
- name: update pip.conf
template: src=pip.conf dest=~/.pip/pip.conf
-- name: restart ntp
- command: su -s /bin/sh -c "service ntp stop; ntpd -gq; hwclock --systohc"
+- name: sync between sys clock and hard clock
+ command: su -s /bin/sh -c "service {{ ntp_service }} stop; ntpd -gq; hwclock --systohc"
ignore_errors: True
- name: update ntp conf
template: src=ntp.conf dest=/etc/ntp.conf backup=yes
- name: restart ntp
- service: name=ntp state=restarted enabled=yes
+ service: name={{ ntp_service }} state=restarted enabled=yes
diff --git a/deploy/adapters/ansible/roles/common/templates/hosts b/deploy/adapters/ansible/roles/common/templates/hosts
index 9d27c0a9..bb770d5b 100644
--- a/deploy/adapters/ansible/roles/common/templates/hosts
+++ b/deploy/adapters/ansible/roles/common/templates/hosts
@@ -1,22 +1,9 @@
-# compute-controller
-10.145.89.136 host-136
-# database
-10.145.89.136 host-136
-# messaging
-10.145.89.136 host-136
-# storage-controller
-10.145.89.138 host-138
-# image
-10.145.89.138 host-138
-# identity
-10.145.89.136 host-136
-# network-server
-10.145.89.138 host-138
-# dashboard
-10.145.89.136 host-136
-# storage-volume
-10.145.89.139 host-139
-# network-worker
-10.145.89.139 host-139
-# compute-worker
-10.145.89.137 host-137
+# localhost
+127.0.0.1 localhost
+# controller
+10.1.0.50 host1
+10.1.0.51 host2
+10.1.0.52 host3
+# compute
+10.1.0.53 host4
+10.1.0.54 host5
diff --git a/deploy/adapters/ansible/roles/common/templates/pip.conf b/deploy/adapters/ansible/roles/common/templates/pip.conf
index 4e1309a1..7bb3e43e 100644
--- a/deploy/adapters/ansible/roles/common/templates/pip.conf
+++ b/deploy/adapters/ansible/roles/common/templates/pip.conf
@@ -1,3 +1,5 @@
[global]
find-links = http://{{ COMPASS_SERVER.stdout_lines[0] }}/pip
no-index = true
+[install]
+trusted-host={{ COMPASS_SERVER.stdout_lines[0] }}
diff --git a/deploy/adapters/ansible/roles/common/vars/Debian.yml b/deploy/adapters/ansible/roles/common/vars/Debian.yml
index c763efdc..af6130cb 100644
--- a/deploy/adapters/ansible/roles/common/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/common/vars/Debian.yml
@@ -1,7 +1,6 @@
---
packages:
- ubuntu-cloud-keyring
- - python-pip
- python-dev
- - python-mysqldb
- - ntp
+
+ntp_service: ntp
diff --git a/deploy/adapters/ansible/roles/common/vars/RedHat.yml b/deploy/adapters/ansible/roles/common/vars/RedHat.yml
new file mode 100644
index 00000000..f75c253e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/common/vars/RedHat.yml
@@ -0,0 +1,5 @@
+---
+packages:
+ - python-devel
+
+ntp_service: ntpd
diff --git a/deploy/adapters/ansible/roles/common/vars/main.yml b/deploy/adapters/ansible/roles/common/vars/main.yml
new file mode 100644
index 00000000..2c5b5679
--- /dev/null
+++ b/deploy/adapters/ansible/roles/common/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - python-pip
+ - ntp
+
+services_noarch: []
diff --git a/deploy/adapters/ansible/roles/dashboard/tasks/main.yml b/deploy/adapters/ansible/roles/dashboard/tasks/main.yml
index e43b6fd8..2cad1174 100644
--- a/deploy/adapters/ansible/roles/dashboard/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/dashboard/tasks/main.yml
@@ -2,26 +2,17 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install dashboard packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
- name: remove ubuntu theme
action: "{{ ansible_pkg_mgr }} name=openstack-dashboard-ubuntu-theme state=absent"
-## horizon configuration is already enabled in apache2/conf-enabled
-## by openstack-dashboard package deploy script.
-#- name: update dashboard conf
-# template: src=openstack-dashboard.conf
-# dest=/etc/apache2/sites-available/openstack-dashboard.conf
-# backup=yes
-
- name: update horizon settings
template: src=local_settings.py
dest=/etc/openstack-dashboard/local_settings.py
backup=yes
-- name: restart apache2
- service: name=apache2 state=restarted enabled=yes
-
-- name: restart memcached
- service: name=memcached state=restarted enabled=yes
+- name: restart dashboard services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml b/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml
index e6986f47..fee64c38 100644
--- a/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/dashboard/vars/Debian.yml
@@ -1,6 +1,8 @@
---
packages:
- apache2
- - memcached
- libapache2-mod-wsgi
- - openstack-dashboard
+
+services:
+ - apache2
+ - memcached
diff --git a/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml b/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml
new file mode 100644
index 00000000..f0acce9b
--- /dev/null
+++ b/deploy/adapters/ansible/roles/dashboard/vars/RedHat.yml
@@ -0,0 +1,8 @@
+---
+packages:
+ - httpd
+ - mod_wsgi
+ - python-memcached
+
+services:
+ - httpd
diff --git a/deploy/adapters/ansible/roles/dashboard/vars/main.yml b/deploy/adapters/ansible/roles/dashboard/vars/main.yml
new file mode 100644
index 00000000..b6a965c2
--- /dev/null
+++ b/deploy/adapters/ansible/roles/dashboard/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - memcached
+ - openstack-dashboard
+
+services_noarch: []
diff --git a/deploy/adapters/ansible/roles/database/files/my.cnf b/deploy/adapters/ansible/roles/database/files/my.cnf
index 8575d978..e4a23d96 100644
--- a/deploy/adapters/ansible/roles/database/files/my.cnf
+++ b/deploy/adapters/ansible/roles/database/files/my.cnf
@@ -17,38 +17,38 @@
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
-port = 3306
-socket = /var/run/mysqld/mysqld.sock
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
-socket = /var/run/mysqld/mysqld.sock
-nice = 0
+socket = /var/run/mysqld/mysqld.sock
+nice = 0
[mysqld]
#
# * Basic Settings
#
-user = mysql
-pid-file = /var/run/mysqld/mysqld.pid
-socket = /var/run/mysqld/mysqld.sock
-port = 3306
-basedir = /usr
-datadir = /var/lib/mysql
-tmpdir = /tmp
-lc-messages-dir = /usr/share/mysql
+user = mysql
+pid-file = /var/run/mysqld/mysqld.pid
+socket = /var/run/mysqld/mysqld.sock
+port = 3306
+basedir = /usr
+datadir = /var/lib/mysql
+tmpdir = /tmp
+lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
-bind-address = 0.0.0.0
+bind-address = 0.0.0.0
#
# * Fine Tuning
#
-key_buffer = 16M
+key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
@@ -57,7 +57,7 @@ thread_cache_size = 8
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
-#thread_concurrenc = 10
+#thread_concurrency = 10
#
# * Query Cache Configuration
#
@@ -69,27 +69,27 @@ query_cache_size = 16M
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
-#general_log_file = /var/log/mysql/mysql.log
-#general_log = 1
+#general_log_file = /var/log/mysql/mysql.log
+#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
-#log_slow_queries = /var/log/mysql/mysql-slow.log
-#long_query_time = 2
+#log_slow_queries = /var/log/mysql/mysql-slow.log
+#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
-#server-id = 1
-#log_bin = /var/log/mysql/mysql-bin.log
-expire_logs_days = 10
-max_binlog_size = 100M
-#binlog_do_db = include_database_name
-#binlog_ignore_db = include_database_name
+#server-id = 1
+#log_bin = /var/log/mysql/mysql-bin.log
+expire_logs_days = 10
+max_binlog_size = 100M
+#binlog_do_db = include_database_name
+#binlog_ignore_db = include_database_name
#
# * InnoDB
#
@@ -108,20 +108,20 @@ max_binlog_size = 100M
# ssl-key=/etc/mysql/server-key.pem
default-storage-engine = innodb
innodb_file_per_table
-collation-server = utf8_general_ci
-init-connect = 'SET NAMES utf8'
-character-set-server = utf8
+collation-server = utf8_general_ci
+init-connect = 'SET NAMES utf8'
+character-set-server = utf8
[mysqldump]
quick
quote-names
-max_allowed_packet = 16M
+max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
-key_buffer = 16M
+key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
diff --git a/deploy/adapters/ansible/roles/database/tasks/mariadb.yml b/deploy/adapters/ansible/roles/database/tasks/mariadb.yml
index 50618bfc..dbd76c68 100644
--- a/deploy/adapters/ansible/roles/database/tasks/mariadb.yml
+++ b/deploy/adapters/ansible/roles/database/tasks/mariadb.yml
@@ -1,16 +1,17 @@
---
- name: install python-mysqldb
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: maridb_packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: maridb_packages | union(packages_noarch)
- name: create mysql log directy
file: path=/var/log/mysql state=directory owner=mysql group=mysql mode=0755
-- name: update mariadb my.cnf
- template: src=my.cnf dest=/etc/mysql/my.cnf backup=yes
+- name: update mariadb config file
+ template: src={{ item }} dest={{ mysql_config_file_path }}/{{ item }} backup=yes
+ with_items: mysql_config_file_name
- name: update galera wsrep.cnf
- template: src=wsrep.cnf dest=/etc/mysql/conf.d/wsrep.cnf backup=yes
+ template: src=wsrep.cnf dest={{ wsrep_config_file_path }}/wsrep.cnf backup=yes
- name: update wsrep_sst_rsync uid
lineinfile: dest=/usr/bin/wsrep_sst_rsync state=absent regexp="\s*uid = \$MYUID$" backup=yes
@@ -29,8 +30,7 @@
- name: generate mysql service list
shell: echo {{ item }} >> /opt/service
- with_items:
- - mysql
+ with_items: services_noarch
- name: create database/user
shell: /opt/data.sh
diff --git a/deploy/adapters/ansible/roles/database/tasks/mysql.yml b/deploy/adapters/ansible/roles/database/tasks/mysql.yml
index 8005292e..809d6172 100644
--- a/deploy/adapters/ansible/roles/database/tasks/mysql.yml
+++ b/deploy/adapters/ansible/roles/database/tasks/mysql.yml
@@ -6,10 +6,9 @@
- name: create mysql log directy
file: path=/var/log/mysql state=directory owner=mysql group=mysql mode=0755
-- name: update mysql my.cnf
- copy: src=my.cnf
- dest=/etc/mysql/my.cnf
- backup=yes
+- name: update mysql config file
+ copy: src= {{ item }} dest={{ mysql_config_file_path }}/{{ item }} backup=yes
+ with_items: mysql_config_file_name
- name: manually restart mysql server
shell: service mysql restart
diff --git a/deploy/adapters/ansible/roles/database/templates/my-huge.cnf b/deploy/adapters/ansible/roles/database/templates/my-huge.cnf
new file mode 100644
index 00000000..c561858c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/database/templates/my-huge.cnf
@@ -0,0 +1,151 @@
+# Example MariaDB config file for very large systems.
+#
+# This is for a large system with memory of 1G-2G where the system runs mainly
+# MariaDB.
+#
+# MariaDB programs look for option files in a set of
+# locations which depend on the deployment platform.
+# You can copy this option file to one of those
+# locations. For information about these locations, do:
+# 'my_print_defaults --help' and see what is printed under
+# Default options are read from the following files in the given order:
+# More information at: http://dev.mysql.com/doc/mysql/en/option-files.html
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
+
+# The following options will be passed to all MySQL clients
+[client]
+#password = your_password
+port = 3306
+socket = /var/lib/mysql/mysql.sock
+
+# Here follows entries for some specific programs
+
+# The MySQL server
+[mysqld]
+port = 3306
+socket = /var/lib/mysql/mysql.sock
+skip-external-locking
+key_buffer_size = 384M
+max_allowed_packet = 1M
+table_open_cache = 512
+sort_buffer_size = 2M
+read_buffer_size = 2M
+read_rnd_buffer_size = 8M
+myisam_sort_buffer_size = 64M
+thread_cache_size = 8
+query_cache_size = 32M
+# Try number of CPU's*2 for thread_concurrency
+thread_concurrency = 8
+
+# Point the following paths to a dedicated disk
+#tmpdir = /tmp/
+
+# Don't listen on a TCP/IP port at all. This can be a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets or named pipes.
+# Note that using this option without enabling named pipes on Windows
+# (via the "enable-named-pipe" option) will render mysqld useless!
+#
+#skip-networking
+
+# Replication Master Server (default)
+# binary logging is required for replication
+log-bin=mysql-bin
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set
+# but will not function as a master if omitted
+server-id = 1
+
+# Replication Slave (comment out master section to use this)
+#
+# To configure this host as a replication slave, you can choose between
+# two methods :
+#
+# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
+# the syntax is:
+#
+# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> by the master's port number (3306 by default).
+#
+# Example:
+#
+# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
+# MASTER_USER='joe', MASTER_PASSWORD='secret';
+#
+# OR
+#
+# 2) Set the variables below. However, in case you choose this method, then
+# start replication for the first time (even unsuccessfully, for example
+# if you mistyped the password in master-password and the slave fails to
+# connect), the slave will create a master.info file, and any later
+# change in this file to the variables' values below will be ignored and
+# overridden by the content of the master.info file, unless you shutdown
+# the slave server, delete master.info and restart the slaver server.
+# For that reason, you may want to leave the lines below untouched
+# (commented) and instead use CHANGE MASTER TO (see above)
+#
+# required unique id between 2 and 2^32 - 1
+# (and different from the master)
+# defaults to 2 if master-host is set
+# but will not function as a slave if omitted
+#server-id = 2
+#
+# The replication master for this slave - required
+#master-host = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <port>
+#
+# binary logging - not required for slaves, but recommended
+#log-bin=mysql-bin
+#
+# binary logging format - mixed recommended
+#binlog_format=mixed
+
+# Uncomment the following if you are using InnoDB tables
+#innodb_data_home_dir = /var/lib/mysql
+#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
+#innodb_log_group_home_dir = /var/lib/mysql
+# You can set .._buffer_pool_size up to 50 - 80 %
+# of RAM but beware of setting memory usage too high
+#innodb_buffer_pool_size = 384M
+#innodb_additional_mem_pool_size = 20M
+# Set .._log_file_size to 25 % of buffer pool size
+#innodb_log_file_size = 100M
+#innodb_log_buffer_size = 8M
+#innodb_flush_log_at_trx_commit = 1
+#innodb_lock_wait_timeout = 50
+
+[mysqldump]
+quick
+max_allowed_packet = 16M
+
+[mysql]
+no-auto-rehash
+# Remove the next comment character if you are not familiar with SQL
+#safe-updates
+
+[myisamchk]
+key_buffer_size = 256M
+sort_buffer_size = 256M
+read_buffer = 2M
+write_buffer = 2M
+
+[mysqlhotcopy]
+interactive-timeout
diff --git a/deploy/adapters/ansible/roles/database/templates/server.cnf b/deploy/adapters/ansible/roles/database/templates/server.cnf
new file mode 100644
index 00000000..e0893c0f
--- /dev/null
+++ b/deploy/adapters/ansible/roles/database/templates/server.cnf
@@ -0,0 +1,47 @@
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+#
+# See the examples of server my.cnf files in /usr/share/mysql/
+#
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+log_error = /var/log/mysql/error.log
+max_connections = 2000
+max_connect_errors = 8000
+skip-host-cache
+skip-name-resolve
+bind-address = {{ HA_VIP }}
+#
+# * Galera-related settings
+#
+[galera]
+# Mandatory settings
+#wsrep_provider=
+#wsrep_cluster_address=
+#binlog_format=row
+#default_storage_engine=InnoDB
+#innodb_autoinc_lock_mode=2
+#bind-address=0.0.0.0
+#
+# Optional setting
+#wsrep_slave_threads=1
+#innodb_flush_log_at_trx_commit=0
+
+# this is only for embedded server
+[embedded]
+
+# This group is only read by MariaDB servers, not by MySQL.
+# If you use the same .cnf file for MySQL and MariaDB,
+# you can put MariaDB-only options here
+[mariadb]
+
+# This group is only read by MariaDB-10.0 servers.
+# If you use the same .cnf file for MariaDB of different versions,
+# use this group for options that older servers don't understand
+[mariadb-10.0]
+
diff --git a/deploy/adapters/ansible/roles/database/templates/wsrep.cnf b/deploy/adapters/ansible/roles/database/templates/wsrep.cnf
index b9e94245..81699796 100644
--- a/deploy/adapters/ansible/roles/database/templates/wsrep.cnf
+++ b/deploy/adapters/ansible/roles/database/templates/wsrep.cnf
@@ -39,7 +39,7 @@ bind-address={{ HA_VIP }}
##
# Full path to wsrep provider library or 'none'
-wsrep_provider=/usr/lib/galera/libgalera_smm.so
+wsrep_provider={{ wsrep_provider_file }}
# Provider specific configuration options
#wsrep_provider_options=
diff --git a/deploy/adapters/ansible/roles/database/vars/Debian.yml b/deploy/adapters/ansible/roles/database/vars/Debian.yml
index d23c18de..5c014b4b 100644
--- a/deploy/adapters/ansible/roles/database/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/database/vars/Debian.yml
@@ -1,4 +1,5 @@
---
+
mysql_packages:
- python-mysqldb
- mysql-server
@@ -10,3 +11,10 @@ maridb_packages:
- python-mysqldb
- mysql-server-wsrep
- galera
+
+services: []
+
+mysql_config_file_path: "/etc/mysql"
+mysql_config_file_name: "my.cnf"
+wsrep_config_file_path: "/etc/mysql/conf.d"
+wsrep_provider_file: "/usr/lib/galera/libgalera_smm.so"
diff --git a/deploy/adapters/ansible/roles/database/vars/RedHat.yml b/deploy/adapters/ansible/roles/database/vars/RedHat.yml
new file mode 100644
index 00000000..1e4b427a
--- /dev/null
+++ b/deploy/adapters/ansible/roles/database/vars/RedHat.yml
@@ -0,0 +1,16 @@
+---
+mysql_packages:
+ - python-mysqldb
+ - mysql-server
+
+maridb_packages:
+ - MariaDB-client
+ - MariaDB-server
+ - galera
+
+services: []
+
+mysql_config_file_path: "/etc/my.cnf.d"
+mysql_config_file_name: ["my-huge.cnf", "server.cnf"]
+wsrep_config_file_path: "/etc/my.cnf.d"
+wsrep_provider_file: "/usr/lib64/galera/libgalera_smm.so"
diff --git a/deploy/adapters/ansible/roles/database/vars/main.yml b/deploy/adapters/ansible/roles/database/vars/main.yml
new file mode 100644
index 00000000..e497cd92
--- /dev/null
+++ b/deploy/adapters/ansible/roles/database/vars/main.yml
@@ -0,0 +1,5 @@
+---
+packages_noarch: []
+
+services_noarch:
+ - mysql
diff --git a/deploy/adapters/ansible/roles/glance/handlers/main.yml b/deploy/adapters/ansible/roles/glance/handlers/main.yml
index d8eaa44a..7fdaea55 100644
--- a/deploy/adapters/ansible/roles/glance/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/glance/handlers/main.yml
@@ -1,6 +1,4 @@
---
-- name: restart glance-api
- service: name=glance-api state=restarted enabled=yes
-
-- name: restart glance-registry
- service: name=glance-registry state=restarted enabled=yes
+- name: restart glance services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/glance/tasks/glance_config.yml b/deploy/adapters/ansible/roles/glance/tasks/glance_config.yml
index 008595dc..0960acfc 100644
--- a/deploy/adapters/ansible/roles/glance/tasks/glance_config.yml
+++ b/deploy/adapters/ansible/roles/glance/tasks/glance_config.yml
@@ -1,6 +1,7 @@
---
- name: init glance db version
shell: glance-manage db_version_control 0
+ when: ansible_os_family == "Debian"
- name: sync glance db
shell: sleep 15; su -s /bin/sh -c "glance-manage db_sync" glance
@@ -9,8 +10,7 @@
retries: 5
delay: 3
notify:
- - restart glance-registry
- - restart glance-api
+ - restart glance services
- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/glance/tasks/glance_install.yml b/deploy/adapters/ansible/roles/glance/tasks/glance_install.yml
index d9d15db3..294b35e8 100644
--- a/deploy/adapters/ansible/roles/glance/tasks/glance_install.yml
+++ b/deploy/adapters/ansible/roles/glance/tasks/glance_install.yml
@@ -1,13 +1,11 @@
---
-- include_vars: "{{ ansible_os_family }}.yml"
-
- name: install glance packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest force=yes"
- with_items: glance_packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest"
+ with_items: packages | union(packages_noarch)
- name: generate glance service list
shell: echo {{ item }} >> /opt/service
- with_items: glance_services
+ with_items: services | union(services_noarch)
- name: update glance conf
template: src={{ item }} dest=/etc/glance/{{ item }}
@@ -16,8 +14,7 @@
- glance-api.conf
- glance-registry.conf
notify:
- - restart glance-registry
- - restart glance-api
+ - restart glance services
- name: remove default sqlite db
shell: rm /var/lib/glance/glance.sqlite || touch glance.sqllite.db.removed
diff --git a/deploy/adapters/ansible/roles/glance/tasks/nfs.yml b/deploy/adapters/ansible/roles/glance/tasks/nfs.yml
index 70ed91d5..dc1be977 100644
--- a/deploy/adapters/ansible/roles/glance/tasks/nfs.yml
+++ b/deploy/adapters/ansible/roles/glance/tasks/nfs.yml
@@ -1,7 +1,7 @@
---
- name: install packages
- action: "{{ ansible_pkg_mgr }} name=nfs-common state=present"
- with_items: nfs-packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: nfs_packages
- name: install nfs
local_action: yum name=nfs-utils state=present
diff --git a/deploy/adapters/ansible/roles/glance/templates/glance-api.conf b/deploy/adapters/ansible/roles/glance/templates/glance-api.conf
index 2ce74797..3046ab37 100644
--- a/deploy/adapters/ansible/roles/glance/templates/glance-api.conf
+++ b/deploy/adapters/ansible/roles/glance/templates/glance-api.conf
@@ -1,9 +1,9 @@
[DEFAULT]
# Show more verbose log output (sets INFO log level output)
-#verbose = False
+verbose = {{ VERBOSE }}
# Show debugging output in logs (sets DEBUG log level output)
-#debug = False
+debug = {{ DEBUG }}
# Which backend scheme should Glance use by default is not specified
# in a request to add a new image to Glance? Known schemes are determined
diff --git a/deploy/adapters/ansible/roles/glance/vars/Debian.yml b/deploy/adapters/ansible/roles/glance/vars/Debian.yml
index feacea1e..b295ff28 100644
--- a/deploy/adapters/ansible/roles/glance/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/glance/vars/Debian.yml
@@ -1,11 +1,11 @@
---
-glance_packages:
+
+packages:
- glance
- - python-glanceclient
-glance_services:
+nfs_packages:
+ - nfs-common
+
+services:
- glance-registry
- glance-api
-
-nfs-packages:
- - nfs-common
diff --git a/deploy/adapters/ansible/roles/glance/vars/RedHat.yml b/deploy/adapters/ansible/roles/glance/vars/RedHat.yml
new file mode 100644
index 00000000..e26b7034
--- /dev/null
+++ b/deploy/adapters/ansible/roles/glance/vars/RedHat.yml
@@ -0,0 +1,11 @@
+---
+packages:
+ - openstack-glance
+
+nfs_packages:
+ - nfs-utils
+ - rpcbind
+
+services:
+ - openstack-glance-api
+ - openstack-glance-registry
diff --git a/deploy/adapters/ansible/roles/glance/vars/main.yml b/deploy/adapters/ansible/roles/glance/vars/main.yml
new file mode 100644
index 00000000..83e90ff1
--- /dev/null
+++ b/deploy/adapters/ansible/roles/glance/vars/main.yml
@@ -0,0 +1,5 @@
+---
+packages_noarch:
+ - python-glanceclient
+
+services_noarch: []
diff --git a/deploy/adapters/ansible/roles/ha/tasks/main.yml b/deploy/adapters/ansible/roles/ha/tasks/main.yml
index eeaf5921..edd5e6dd 100644
--- a/deploy/adapters/ansible/roles/ha/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/ha/tasks/main.yml
@@ -3,14 +3,14 @@
- name: install keepalived xinet haproxy
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
- with_items: packages
+ with_items: packages | union(packages_noarch)
- name: generate ha service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- name: install pexpect
- pip: name=pexpect state=present
+ pip: name=pexpect state=present extra_args='--pre'
- name: activate ip_nonlocal_bind
sysctl: name=net.ipv4.ip_nonlocal_bind value=1
@@ -37,6 +37,7 @@
regexp="ENABLED=*"
line="ENABLED=1"
notify: restart haproxy
+ when: ansible_os_family == "Debian"
- name: set haproxy log
lineinfile: dest=/etc/rsyslog.conf state=present
@@ -76,6 +77,7 @@
lineinfile: dest=/etc/default/keepalived state=present
regexp="^DAEMON_ARGS=*"
line="DAEMON_ARGS=\"-D -d -S 1\""
+ when: ansible_os_family == "Debian"
- name: set keepalived log
lineinfile: dest=/etc/rsyslog.conf state=present
diff --git a/deploy/adapters/ansible/roles/ha/templates/failover.j2 b/deploy/adapters/ansible/roles/ha/templates/failover.j2
index e3877e6b..ebfa65f8 100644
--- a/deploy/adapters/ansible/roles/ha/templates/failover.j2
+++ b/deploy/adapters/ansible/roles/ha/templates/failover.j2
@@ -28,7 +28,7 @@ def ssh_get_hostname(ip):
return result.split(os.linesep)[1]
except pxssh.ExceptionPxssh as e:
LOG.error("pxssh failed on login.")
- raise
+ raise
def failover(mode):
config = ConfigParser.ConfigParser()
diff --git a/deploy/adapters/ansible/roles/ha/templates/keepalived.conf b/deploy/adapters/ansible/roles/ha/templates/keepalived.conf
index 02c55326..f9f91915 100644
--- a/deploy/adapters/ansible/roles/ha/templates/keepalived.conf
+++ b/deploy/adapters/ansible/roles/ha/templates/keepalived.conf
@@ -15,7 +15,6 @@ global_defs {
}
vrrp_instance VI_1 {
-
interface {{ INTERNAL_INTERFACE }}
virtual_router_id 51
state BACKUP
diff --git a/deploy/adapters/ansible/roles/ha/vars/Debian.yml b/deploy/adapters/ansible/roles/ha/vars/Debian.yml
index 263c2ea7..041cf477 100644
--- a/deploy/adapters/ansible/roles/ha/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/ha/vars/Debian.yml
@@ -1,10 +1,3 @@
---
-packages:
- - keepalived
- - xinetd
- - haproxy
-
-services:
- - keepalived
- - xinetd
- - haproxy
+services: []
+packages: []
diff --git a/deploy/adapters/ansible/roles/ha/vars/RedHat.yml b/deploy/adapters/ansible/roles/ha/vars/RedHat.yml
new file mode 100644
index 00000000..041cf477
--- /dev/null
+++ b/deploy/adapters/ansible/roles/ha/vars/RedHat.yml
@@ -0,0 +1,3 @@
+---
+services: []
+packages: []
diff --git a/deploy/adapters/ansible/roles/ha/vars/main.yml b/deploy/adapters/ansible/roles/ha/vars/main.yml
new file mode 100644
index 00000000..3928b781
--- /dev/null
+++ b/deploy/adapters/ansible/roles/ha/vars/main.yml
@@ -0,0 +1,10 @@
+---
+packages_noarch:
+ - keepalived
+ - xinetd
+ - haproxy
+
+services_noarch:
+ - keepalived
+ - xinetd
+ - haproxy
diff --git a/deploy/adapters/ansible/roles/keystone/tasks/keystone_install.yml b/deploy/adapters/ansible/roles/keystone/tasks/keystone_install.yml
index 568c040e..32d2b6be 100644
--- a/deploy/adapters/ansible/roles/keystone/tasks/keystone_install.yml
+++ b/deploy/adapters/ansible/roles/keystone/tasks/keystone_install.yml
@@ -2,11 +2,12 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install keystone packages
- action: "{{ ansible_pkg_mgr }} name=keystone state=present force=yes"
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
- name: generate keystone service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- name: update keystone conf
template: src=keystone.conf dest=/etc/keystone/keystone.conf backup=yes
@@ -15,10 +16,10 @@
shell: rm /var/lib/keystone/keystone.db || echo sqllite database already removed
- name: cron job to purge expired tokens hourly
- shell: (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/crontabs/keystone
+ shell: (crontab -l -u keystone 2>&1 | grep -q token_flush) || echo '@hourly /usr/bin/keystone-manage token_flush > /var/log/keystone/keystone-tokenflush.log 2>&1' >> {{ cron_path }}/keystone
- name: modify keystone cron rights
- file: path=/var/spool/cron/crontabs/keystone mode=0600
+ file: path={{ cron_path }}/keystone mode=0600
- name: keystone source files
template: src={{ item }} dest=/opt/{{ item }}
@@ -26,5 +27,6 @@
- admin-openrc.sh
- demo-openrc.sh
-- name: manually start keystone
- service: name=keystone state=restarted enabled=yes
+- name: restart keystone services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/keystone/vars/Debian.yml b/deploy/adapters/ansible/roles/keystone/vars/Debian.yml
index 101dc46b..e8998a4e 100644
--- a/deploy/adapters/ansible/roles/keystone/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/keystone/vars/Debian.yml
@@ -1,6 +1,9 @@
---
+
+cron_path: "/var/spool/cron/crontabs"
+
packages:
- keystone
services:
- - "keystone"
+ - keystone
diff --git a/deploy/adapters/ansible/roles/keystone/vars/RedHat.yml b/deploy/adapters/ansible/roles/keystone/vars/RedHat.yml
new file mode 100644
index 00000000..91d1217b
--- /dev/null
+++ b/deploy/adapters/ansible/roles/keystone/vars/RedHat.yml
@@ -0,0 +1,8 @@
+---
+cron_path: "/var/spool/cron"
+
+packages:
+ - openstack-keystone
+
+services:
+ - openstack-keystone
diff --git a/deploy/adapters/ansible/roles/keystone/vars/main.yml b/deploy/adapters/ansible/roles/keystone/vars/main.yml
new file mode 100644
index 00000000..cc24916a
--- /dev/null
+++ b/deploy/adapters/ansible/roles/keystone/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - python-keystoneclient
+
+services_noarch: []
+
diff --git a/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml
index 9e574c18..edfc8a7a 100644
--- a/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml
+++ b/deploy/adapters/ansible/roles/mq/tasks/rabbitmq.yml
@@ -7,7 +7,7 @@
- name: install rabbitmq-server
action: "{{ ansible_pkg_mgr }} name=rabbitmq-server state=present"
- with_items: packages
+ with_items: packages | union(packages_noarch)
- name: stop rabbitmq-server
service: name=rabbitmq-server
@@ -27,7 +27,7 @@
- name: generate mq service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services_noarch
- name: modify rabbitmq password
command: rabbitmqctl change_password guest {{ RABBIT_PASS }}
diff --git a/deploy/adapters/ansible/roles/mq/vars/Debian.yml b/deploy/adapters/ansible/roles/mq/vars/Debian.yml
index a9a9ac4f..c233bda3 100644
--- a/deploy/adapters/ansible/roles/mq/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/mq/vars/Debian.yml
@@ -1,6 +1,4 @@
---
-packages:
- - rabbitmq-server
+services: []
+packages: []
-services:
- - "rabbitmq-server"
diff --git a/deploy/adapters/ansible/roles/mq/vars/RedHat.yml b/deploy/adapters/ansible/roles/mq/vars/RedHat.yml
new file mode 100644
index 00000000..c233bda3
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/vars/RedHat.yml
@@ -0,0 +1,4 @@
+---
+services: []
+packages: []
+
diff --git a/deploy/adapters/ansible/roles/mq/vars/main.yml b/deploy/adapters/ansible/roles/mq/vars/main.yml
new file mode 100644
index 00000000..2c48a648
--- /dev/null
+++ b/deploy/adapters/ansible/roles/mq/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch:
+ - rabbitmq-server
+
+services_noarch:
+ - rabbitmq-server
diff --git a/deploy/adapters/ansible/roles/neutron-common/handlers/main.yml b/deploy/adapters/ansible/roles/neutron-common/handlers/main.yml
index 36d779dd..f19c937d 100644
--- a/deploy/adapters/ansible/roles/neutron-common/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-common/handlers/main.yml
@@ -1,13 +1,3 @@
---
- name: restart neutron-plugin-openvswitch-agent
- service: name=neutron-plugin-openvswitch-agent state=restarted enabled=yes
- when: "'opendaylight' not in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: restart neutron-l3-agent
- service: name=neutron-l3-agent state=restarted enabled=yes
-
-- name: restart neutron-dhcp-agent
- service: name=neutron-dhcp-agent state=restarted enabled=yes
-
-- name: restart neutron-metadata-agent
- service: name=neutron-metadata-agent state=restarted enabled=yes
+ service: name={{ neutron_plugin_openvswitch_agent_services }} state=restarted enabled=yes
diff --git a/deploy/adapters/ansible/roles/neutron-compute/handlers/main.yml b/deploy/adapters/ansible/roles/neutron-compute/handlers/main.yml
index 36d779dd..25d80040 100644
--- a/deploy/adapters/ansible/roles/neutron-compute/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-compute/handlers/main.yml
@@ -1,13 +1,4 @@
---
-- name: restart neutron-plugin-openvswitch-agent
- service: name=neutron-plugin-openvswitch-agent state=restarted enabled=yes
- when: "'opendaylight' not in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: restart neutron-l3-agent
- service: name=neutron-l3-agent state=restarted enabled=yes
-
-- name: restart neutron-dhcp-agent
- service: name=neutron-dhcp-agent state=restarted enabled=yes
-
-- name: restart neutron-metadata-agent
- service: name=neutron-metadata-agent state=restarted enabled=yes
+- name: restart neutron compute service
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/neutron-compute/tasks/main.yml b/deploy/adapters/ansible/roles/neutron-compute/tasks/main.yml
index 3a811ecf..fbc41385 100644
--- a/deploy/adapters/ansible/roles/neutron-compute/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-compute/tasks/main.yml
@@ -14,39 +14,39 @@
value=0 state=present reload=yes
- name: install compute-related neutron packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
-- name: install neutron openvswitch agent
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: neutron_plugin_openvswitch_agent_packages
- when: "'opendaylight' not in {{ NEUTRON_MECHANISM_DRIVERS }}"
+- name: fix openstack neutron plugin config file
+ shell: |
+ sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /usr/lib/systemd/system/neutron-openvswitch-agent.service
+ systemctl daemon-reload
+ when: ansible_os_family == 'RedHat'
-- name: generate neutron computer service list
+- name: generate neutron compute service list
shell: echo {{ item }} >> /opt/service
- with_items: neutron-plugin-openvswitch-agent-services
- when: "'opendaylight' not in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: config neutron
- template: src=neutron-network.conf
- dest=/etc/neutron/neutron.conf backup=yes
- notify:
- - restart neutron-plugin-openvswitch-agent
+ with_items: services | union(services_noarch)
- name: config ml2 plugin
template: src=ml2_conf.ini
dest=/etc/neutron/plugins/ml2/ml2_conf.ini
backup=yes
+
+- name: ln plugin.ini
+ file: src=/etc/neutron/plugins/ml2/ml2_conf.ini dest=/etc/neutron/plugin.ini state=link
+
+- name: config neutron
+ template: src=neutron-network.conf
+ dest=/etc/neutron/neutron.conf backup=yes
notify:
- - restart neutron-plugin-openvswitch-agent
+ - restart neutron compute service
+ - restart nova-compute services
+
+- meta: flush_handlers
- name: add br-int
openvswitch_bridge: bridge=br-int state=present
- notify:
- - restart neutron-plugin-openvswitch-agent
- - restart nova-compute
- include: ../../neutron-network/tasks/odl.yml
when: "'opendaylight' in {{ NEUTRON_MECHANISM_DRIVERS }}"
-- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/neutron-compute/templates/nova.conf b/deploy/adapters/ansible/roles/neutron-compute/templates/nova.conf
index 4988cb03..4706d1db 100644
--- a/deploy/adapters/ansible/roles/neutron-compute/templates/nova.conf
+++ b/deploy/adapters/ansible/roles/neutron-compute/templates/nova.conf
@@ -3,7 +3,7 @@ dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
-lock_path=/var/lock/nova
+lock_path=/var/lib/nova/tmp
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
diff --git a/deploy/adapters/ansible/roles/neutron-compute/vars/Debian.yml b/deploy/adapters/ansible/roles/neutron-compute/vars/Debian.yml
index cea31b3a..9c58b36b 100644
--- a/deploy/adapters/ansible/roles/neutron-compute/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/neutron-compute/vars/Debian.yml
@@ -1,12 +1,11 @@
---
+
packages:
- neutron-common
- neutron-plugin-ml2
- openvswitch-datapath-dkms
- openvswitch-switch
-
-neutron_plugin_openvswitch_agent_packages:
- neutron-plugin-openvswitch-agent
-neutron-plugin-openvswitch-agent-services:
- - "neutron-plugin-openvswitch-agent"
+services:
+ - neutron-plugin-openvswitch-agent
diff --git a/deploy/adapters/ansible/roles/neutron-compute/vars/RedHat.yml b/deploy/adapters/ansible/roles/neutron-compute/vars/RedHat.yml
new file mode 100644
index 00000000..cf882150
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-compute/vars/RedHat.yml
@@ -0,0 +1,9 @@
+---
+packages:
+ - openstack-neutron-ml2
+ - openstack-neutron-openvswitch
+
+services:
+ - openvswitch
+ - neutron-openvswitch-agent
+ - libvirtd
diff --git a/deploy/adapters/ansible/roles/neutron-compute/vars/main.yml b/deploy/adapters/ansible/roles/neutron-compute/vars/main.yml
new file mode 100644
index 00000000..d43b8359
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-compute/vars/main.yml
@@ -0,0 +1,4 @@
+---
+packages_noarch: []
+
+services_noarch: []
diff --git a/deploy/adapters/ansible/roles/neutron-controller/handlers/main.yml b/deploy/adapters/ansible/roles/neutron-controller/handlers/main.yml
index b4c1585d..a9d9bd18 100644
--- a/deploy/adapters/ansible/roles/neutron-controller/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-controller/handlers/main.yml
@@ -1,24 +1,4 @@
---
-- name: restart nova-api
- service: name=nova-api state=restarted enabled=yes
-
-- name: restart nova-cert
- service: name=nova-cert state=restarted enabled=yes
-
-- name: restart nova-consoleauth
- service: name=nova-consoleauth state=restarted enabled=yes
-
-- name: restart nova-scheduler
- service: name=nova-scheduler state=restarted enabled=yes
-
-- name: restart nova-conductor
- service: name=nova-conductor state=restarted enabled=yes
-
-- name: restart nova-novncproxy
- service: name=nova-novncproxy state=restarted enabled=yes
-
-- name: remove nova-sqlite-db
- shell: rm /var/lib/nova/nova.sqlite || touch nova.sqlite.db.removed
-
-- name: restart neutron-server
- service: name=neutron-server state=restarted enabled=yes
+- name: restart neutron control services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_config.yml b/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_config.yml
index 77cc29ae..c575b328 100644
--- a/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_config.yml
+++ b/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_config.yml
@@ -6,5 +6,6 @@
retries: 5
delay: 3
notify:
- - restart neutron-server
+ - restart neutron control services
+- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_install.yml b/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_install.yml
index 08a8ce63..028419b5 100644
--- a/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_install.yml
+++ b/deploy/adapters/ansible/roles/neutron-controller/tasks/neutron_install.yml
@@ -2,12 +2,12 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install controller-related neutron packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
-- name: generate neutron controll service list
+- name: generate neutron control service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- name: get tenant id to fill neutron.conf
shell: keystone --os-token={{ ADMIN_TOKEN }} --os-endpoint=http://{{ HA_VIP }}:35357/v2.0 tenant-get service | grep id | awk '{print $4}'
@@ -15,13 +15,9 @@
- name: update neutron conf
template: src=neutron.conf dest=/etc/neutron/neutron.conf backup=yes
- notify:
- - restart neutron-server
- name: update ml2 plugin conf
template: src=ml2_conf.ini dest=/etc/neutron/plugins/ml2/ml2_conf.ini backup=yes
- notify:
- - restart neutron-server
-
-- meta: flush_handlers
+- name: ln plugin.ini
+ file: src=/etc/neutron/plugins/ml2/ml2_conf.ini dest=/etc/neutron/plugin.ini state=link
diff --git a/deploy/adapters/ansible/roles/neutron-controller/templates/nova.conf b/deploy/adapters/ansible/roles/neutron-controller/templates/nova.conf
index 95870732..2b2bd9bb 100644
--- a/deploy/adapters/ansible/roles/neutron-controller/templates/nova.conf
+++ b/deploy/adapters/ansible/roles/neutron-controller/templates/nova.conf
@@ -3,7 +3,7 @@ dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
-lock_path=/var/lock/nova
+lock_path=/var/lib/nova/tmp
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
diff --git a/deploy/adapters/ansible/roles/neutron-controller/vars/Debian.yml b/deploy/adapters/ansible/roles/neutron-controller/vars/Debian.yml
index c010e9a1..55800f78 100644
--- a/deploy/adapters/ansible/roles/neutron-controller/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/neutron-controller/vars/Debian.yml
@@ -2,7 +2,5 @@
packages:
- neutron-server
- neutron-plugin-ml2
-services:
- - neutron-server
- - neutron-plugin-ml2
+services: []
diff --git a/deploy/adapters/ansible/roles/neutron-controller/vars/RedHat.yml b/deploy/adapters/ansible/roles/neutron-controller/vars/RedHat.yml
new file mode 100644
index 00000000..14eb730c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-controller/vars/RedHat.yml
@@ -0,0 +1,7 @@
+---
+packages:
+ - openstack-neutron
+ - openstack-neutron-ml2
+
+services:
+ - neutron-server
diff --git a/deploy/adapters/ansible/roles/neutron-controller/vars/main.yml b/deploy/adapters/ansible/roles/neutron-controller/vars/main.yml
new file mode 100644
index 00000000..453c1d5c
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-controller/vars/main.yml
@@ -0,0 +1,6 @@
+---
+packages_noarch: []
+
+services_noarch:
+ - neutron-server
+
diff --git a/deploy/adapters/ansible/roles/neutron-network/files/xorp b/deploy/adapters/ansible/roles/neutron-network/files/xorp
new file mode 100644
index 00000000..5a486107
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-network/files/xorp
@@ -0,0 +1,23 @@
+# Defaults for xorp initscript
+# sourced by /etc/init.d/xorp
+# installed at /etc/default/xorp by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Master system-wide xorp switch. The initscript
+# will not run if it is not set to yes.
+
+RUN="yes"
+
+
+# Additional options that are passed to the rtrmgr Daemon.
+# e.g. :
+# -a <allowed host> Host allowed by the finder
+# -n <allowed net> Subnet allowed by the finder
+# -v Print verbose information
+# -b <file> Specify boot file
+# -d Run as a daemon, detach from tty
+
+DAEMON_OPTS="-b /etc/xorp/config.boot "
diff --git a/deploy/adapters/ansible/roles/neutron-network/handlers/main.yml b/deploy/adapters/ansible/roles/neutron-network/handlers/main.yml
index d6c5cc8f..7e67b76e 100644
--- a/deploy/adapters/ansible/roles/neutron-network/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-network/handlers/main.yml
@@ -1,21 +1,19 @@
---
-- name: restart neutron-plugin-openvswitch-agent
- service: name=neutron-plugin-openvswitch-agent state=restarted enabled=yes
- when: "'opendaylight' not in {{ NEUTRON_MECHANISM_DRIVERS }}"
+- name: restart common neutron network relation service
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services_noarch
-- name: restart neutron-l3-agent
- service: name=neutron-l3-agent state=restarted enabled=yes
+- name: restart neutron network relation service
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services
+
+- name: restart openvswitch agent service
+ service: name=neutron-openvswitch-agent state=restarted enabled=yes
- name: kill dnsmasq
command: killall dnsmasq
ignore_errors: True
-- name: restart neutron-dhcp-agent
- service: name=neutron-dhcp-agent state=restarted enabled=yes
-
-- name: restart neutron-metadata-agent
- service: name=neutron-metadata-agent state=restarted enabled=yes
-
- name: restart xorp
service: name=xorp state=restarted enabled=yes sleep=10
ignore_errors: True
diff --git a/deploy/adapters/ansible/roles/neutron-network/tasks/igmp-router.yml b/deploy/adapters/ansible/roles/neutron-network/tasks/igmp-router.yml
index d6f38a0e..c9406ca3 100644
--- a/deploy/adapters/ansible/roles/neutron-network/tasks/igmp-router.yml
+++ b/deploy/adapters/ansible/roles/neutron-network/tasks/igmp-router.yml
@@ -1,6 +1,10 @@
---
- name: Install XORP to provide IGMP router functionality
- apt: pkg=xorp
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: xorp_packages
+
+- name: create xorp directory
+ file: path=/etc/xorp state=directory
- name: configure xorp
template: src=etc/xorp/config.boot dest=/etc/xorp/config.boot
@@ -8,7 +12,7 @@
- restart xorp
- name: set xorp defaults
- lineinfile: dest=/etc/default/xorp regexp=^RUN= line=RUN=yes
+ copy: src=xorp dest=/etc/default/xorp
notify:
- restart xorp
diff --git a/deploy/adapters/ansible/roles/neutron-network/tasks/main.yml b/deploy/adapters/ansible/roles/neutron-network/tasks/main.yml
index f0953e0e..758f3208 100644
--- a/deploy/adapters/ansible/roles/neutron-network/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/neutron-network/tasks/main.yml
@@ -14,65 +14,47 @@
value=0 state=present reload=yes
- name: install neutron network related packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
-- name: install neutron openvswitch agent
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: neutron_plugin_openvswitch_agent_packages
- when: "'openvswitch' in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: generate neutron service list
+- name: generate neutron network service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
-- name: generate neutron-plugin-openvswitch-agent service list
- shell: echo {{ item }} >> /opt/service
- with_items: neutron-plugin-openvswitch-agent-services
- when: "'openvswitch' in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: config neutron
- template: src=neutron-network.conf
- dest=/etc/neutron/neutron.conf backup=yes
- notify:
- - restart neutron-plugin-openvswitch-agent
- - restart neutron-l3-agent
- - kill dnsmasq
- - restart neutron-dhcp-agent
- - restart neutron-metadata-agent
+- name: fix openstack neutron plugin config file
+ shell: |
+ sed -i 's,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g' /usr/lib/systemd/system/neutron-openvswitch-agent.service
+ systemctl daemon-reload
+ when: ansible_os_family == 'RedHat'
- name: config l3 agent
template: src=l3_agent.ini dest=/etc/neutron/l3_agent.ini
backup=yes
- notify:
- - restart neutron-l3-agent
- name: config dhcp agent
template: src=dhcp_agent.ini dest=/etc/neutron/dhcp_agent.ini
backup=yes
- notify:
- - kill dnsmasq
- - restart neutron-dhcp-agent
- name: update dnsmasq-neutron.conf
template: src=dnsmasq-neutron.conf
dest=/etc/neutron/dnsmasq-neutron.conf
- notify:
- - kill dnsmasq
- - restart neutron-dhcp-agent
- name: config metadata agent
template: src=metadata_agent.ini
dest=/etc/neutron/metadata_agent.ini backup=yes
- notify:
- - restart neutron-metadata-agent
- name: config ml2 plugin
template: src=ml2_conf.ini
dest=/etc/neutron/plugins/ml2/ml2_conf.ini
backup=yes
+
+- name: config neutron
+ template: src=neutron-network.conf
+ dest=/etc/neutron/neutron.conf backup=yes
notify:
- - restart neutron-plugin-openvswitch-agent
+ - restart common neutron network relation service
+ - restart neutron network relation service
+ - kill dnsmasq
- meta: flush_handlers
@@ -83,13 +65,21 @@
openvswitch_bridge: bridge=br-ex state=present
when: "'openvswitch' in {{ NEUTRON_MECHANISM_DRIVERS }}"
+- name: ln plugin.ini
+ file: src=/etc/neutron/plugins/ml2/ml2_conf.ini dest=/etc/neutron/plugin.ini state=link
+
+- name: restart openvswitch-agent service
+ service: name={{ openvswitch_agent }} state=restarted enabled=yes
+
+- meta: flush_handlers
+
- name: assign a port to br-ex for physical ext interface
openvswitch_port: bridge=br-ex port={{ INTERFACE_NAME }}
state=present
when: "'openvswitch' in {{ NEUTRON_MECHANISM_DRIVERS }}"
- include: igmp-router.yml
- when: "'vxlan' in {{ NEUTRON_TUNNEL_TYPES }}"
+ when: "'vxlan' in {{ NEUTRON_TUNNEL_TYPES }} and ansible_os_family == 'Debian'"
- name: assert kernel support for vxlan
command: modinfo -F version vxlan
@@ -103,8 +93,3 @@
- include: odl.yml
when: "'opendaylight' in {{ NEUTRON_MECHANISM_DRIVERS }}"
-
-- name: restart ovs service
- service: name=openvswitch-switch state=restarted enabled=yes
-
-- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/neutron-network/templates/nova.conf b/deploy/adapters/ansible/roles/neutron-network/templates/nova.conf
index 95870732..2b2bd9bb 100644
--- a/deploy/adapters/ansible/roles/neutron-network/templates/nova.conf
+++ b/deploy/adapters/ansible/roles/neutron-network/templates/nova.conf
@@ -3,7 +3,7 @@ dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
-lock_path=/var/lock/nova
+lock_path=/var/lib/nova/tmp
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
diff --git a/deploy/adapters/ansible/roles/neutron-network/vars/Debian.yml b/deploy/adapters/ansible/roles/neutron-network/vars/Debian.yml
index 0350c42b..ee511a2d 100644
--- a/deploy/adapters/ansible/roles/neutron-network/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/neutron-network/vars/Debian.yml
@@ -5,16 +5,13 @@ packages:
- openvswitch-switch
- neutron-l3-agent
- neutron-dhcp-agent
+ - neutron-plugin-openvswitch-agent
services:
- - neutron-plugin-ml2
- - openvswitch-datapath-dkms
- openvswitch-switch
- - neutron-l3-agent
- - neutron-dhcp-agent
-
-neutron_plugin_openvswitch_agent_packages:
- neutron-plugin-openvswitch-agent
-neutron-plugin-openvswitch-agent-services:
- - neutron-plugin-openvswitch-agent
+openvswitch_agent: neutron-plugin-openvswitch-agent
+
+xorp_packages:
+ - xorp
diff --git a/deploy/adapters/ansible/roles/neutron-network/vars/RedHat.yml b/deploy/adapters/ansible/roles/neutron-network/vars/RedHat.yml
new file mode 100644
index 00000000..4be67bd1
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-network/vars/RedHat.yml
@@ -0,0 +1,14 @@
+---
+packages:
+ - openstack-neutron-ml2
+ - openstack-neutron-openvswitch
+
+services:
+ - openvswitch
+ - neutron-openvswitch-agent
+
+openvswitch_agent: neutron-openvswitch-agent
+
+xorp_packages:
+ - openssl098e
+ - xorp
diff --git a/deploy/adapters/ansible/roles/neutron-network/vars/main.yml b/deploy/adapters/ansible/roles/neutron-network/vars/main.yml
new file mode 100644
index 00000000..77698b15
--- /dev/null
+++ b/deploy/adapters/ansible/roles/neutron-network/vars/main.yml
@@ -0,0 +1,7 @@
+---
+packages_noarch: []
+
+services_noarch:
+ - neutron-l3-agent
+ - neutron-dhcp-agent
+ - neutron-metadata-agent
diff --git a/deploy/adapters/ansible/roles/nova-compute/handlers/main.yml b/deploy/adapters/ansible/roles/nova-compute/handlers/main.yml
index c1350030..6910c810 100644
--- a/deploy/adapters/ansible/roles/nova-compute/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/nova-compute/handlers/main.yml
@@ -1,3 +1,4 @@
---
-- name: restart nova-compute
- service: name=nova-compute state=restarted enabled=yes
+- name: restart nova-compute services
+ service: name={{ item }} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
diff --git a/deploy/adapters/ansible/roles/nova-compute/tasks/main.yml b/deploy/adapters/ansible/roles/nova-compute/tasks/main.yml
index 6c426898..14c5450d 100644
--- a/deploy/adapters/ansible/roles/nova-compute/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/nova-compute/tasks/main.yml
@@ -2,8 +2,8 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install nova-compute related packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
- name: update nova-compute conf
template: src={{ item }} dest=/etc/nova/{{ item }}
@@ -11,11 +11,11 @@
- nova.conf
- nova-compute.conf
notify:
- - restart nova-compute
+ - restart nova-compute services
-- name: generate neutron controll service list
+- name: generate neutron control service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/nova-compute/templates/nova.conf b/deploy/adapters/ansible/roles/nova-compute/templates/nova.conf
index 4988cb03..4706d1db 100644
--- a/deploy/adapters/ansible/roles/nova-compute/templates/nova.conf
+++ b/deploy/adapters/ansible/roles/nova-compute/templates/nova.conf
@@ -3,7 +3,7 @@ dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
-lock_path=/var/lock/nova
+lock_path=/var/lib/nova/tmp
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
diff --git a/deploy/adapters/ansible/roles/nova-compute/vars/Debian.yml b/deploy/adapters/ansible/roles/nova-compute/vars/Debian.yml
index ab2d7301..985b329e 100644
--- a/deploy/adapters/ansible/roles/nova-compute/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/nova-compute/vars/Debian.yml
@@ -1,7 +1,7 @@
---
+
packages:
- nova-compute-kvm
services:
- nova-compute
-
diff --git a/deploy/adapters/ansible/roles/nova-compute/vars/RedHat.yml b/deploy/adapters/ansible/roles/nova-compute/vars/RedHat.yml
new file mode 100644
index 00000000..7f5d388d
--- /dev/null
+++ b/deploy/adapters/ansible/roles/nova-compute/vars/RedHat.yml
@@ -0,0 +1,8 @@
+---
+packages:
+ - openstack-nova-compute
+ - sysfsutils
+
+services:
+ - libvirtd
+ - openstack-nova-compute
diff --git a/deploy/adapters/ansible/roles/nova-compute/vars/main.yml b/deploy/adapters/ansible/roles/nova-compute/vars/main.yml
new file mode 100644
index 00000000..d43b8359
--- /dev/null
+++ b/deploy/adapters/ansible/roles/nova-compute/vars/main.yml
@@ -0,0 +1,4 @@
+---
+packages_noarch: []
+
+services_noarch: []
diff --git a/deploy/adapters/ansible/roles/nova-controller/handlers/main.yml b/deploy/adapters/ansible/roles/nova-controller/handlers/main.yml
index 0f922941..37b106a3 100644
--- a/deploy/adapters/ansible/roles/nova-controller/handlers/main.yml
+++ b/deploy/adapters/ansible/roles/nova-controller/handlers/main.yml
@@ -1,21 +1,7 @@
---
-- name: restart nova-api
- service: name=nova-api state=restarted enabled=yes
-
-- name: restart nova-cert
- service: name=nova-cert state=restarted enabled=yes
-
-- name: restart nova-consoleauth
- service: name=nova-consoleauth state=restarted enabled=yes
-
-- name: restart nova-scheduler
- service: name=nova-scheduler state=restarted enabled=yes
-
-- name: restart nova-conductor
- service: name=nova-conductor state=restarted enabled=yes
-
-- name: restart nova-novncproxy
- service: name=nova-novncproxy state=restarted enabled=yes
+- name: restart nova service
+ service: name={{ item}} state=restarted enabled=yes
+ with_items: services | union(services_noarch)
- name: remove nova-sqlite-db
shell: rm /var/lib/nova/nova.sqlite || touch nova.sqlite.db.removed
diff --git a/deploy/adapters/ansible/roles/nova-controller/tasks/nova_config.yml b/deploy/adapters/ansible/roles/nova-controller/tasks/nova_config.yml
index 62351faa..fbf8e773 100644
--- a/deploy/adapters/ansible/roles/nova-controller/tasks/nova_config.yml
+++ b/deploy/adapters/ansible/roles/nova-controller/tasks/nova_config.yml
@@ -6,11 +6,6 @@
retries: 5
delay: 3
notify:
- - restart nova-api
- - restart nova-cert
- - restart nova-consoleauth
- - restart nova-scheduler
- - restart nova-conductor
- - restart nova-novncproxy
+ - restart nova service
- meta: flush_handlers
diff --git a/deploy/adapters/ansible/roles/nova-controller/tasks/nova_install.yml b/deploy/adapters/ansible/roles/nova-controller/tasks/nova_install.yml
index 83bc287a..bb1dbac7 100644
--- a/deploy/adapters/ansible/roles/nova-controller/tasks/nova_install.yml
+++ b/deploy/adapters/ansible/roles/nova-controller/tasks/nova_install.yml
@@ -2,22 +2,17 @@
- include_vars: "{{ ansible_os_family }}.yml"
- name: install nova related packages
- action: "{{ ansible_pkg_mgr }} name={{ item }} state=present force=yes"
- with_items: packages
+ action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
+ with_items: packages | union(packages_noarch)
-- name: generate nova controll service list
+- name: generate nova control service list
shell: echo {{ item }} >> /opt/service
- with_items: services
+ with_items: services | union(services_noarch)
- name: update nova conf
template: src=nova.conf
dest=/etc/nova/nova.conf
backup=yes
notify:
- - restart nova-api
- - restart nova-cert
- - restart nova-consoleauth
- - restart nova-scheduler
- - restart nova-conductor
- - restart nova-novncproxy
+ - restart nova service
- remove nova-sqlite-db
diff --git a/deploy/adapters/ansible/roles/nova-controller/templates/nova.conf b/deploy/adapters/ansible/roles/nova-controller/templates/nova.conf
index 4c837e33..9b4280c1 100644
--- a/deploy/adapters/ansible/roles/nova-controller/templates/nova.conf
+++ b/deploy/adapters/ansible/roles/nova-controller/templates/nova.conf
@@ -3,7 +3,7 @@ dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
logdir=/var/log/nova
state_path=/var/lib/nova
-lock_path=/var/lock/nova
+lock_path=/var/lib/nova/tmp
force_dhcp_release=True
iscsi_helper=tgtadm
libvirt_use_virtio_for_bridges=True
diff --git a/deploy/adapters/ansible/roles/nova-controller/vars/Debian.yml b/deploy/adapters/ansible/roles/nova-controller/vars/Debian.yml
index 7cd81caf..e96a1b1f 100644
--- a/deploy/adapters/ansible/roles/nova-controller/vars/Debian.yml
+++ b/deploy/adapters/ansible/roles/nova-controller/vars/Debian.yml
@@ -6,7 +6,6 @@ packages:
- nova-consoleauth
- nova-novncproxy
- nova-scheduler
- - python-novaclient
- python-oslo.rootwrap
services:
diff --git a/deploy/adapters/ansible/roles/nova-controller/vars/RedHat.yml b/deploy/adapters/ansible/roles/nova-controller/vars/RedHat.yml
new file mode 100644
index 00000000..e2709a3e
--- /dev/null
+++ b/deploy/adapters/ansible/roles/nova-controller/vars/RedHat.yml
@@ -0,0 +1,16 @@
+---
+packages:
+ - openstack-nova-api
+ - openstack-nova-cert
+ - openstack-nova-conductor
+ - openstack-nova-console
+ - openstack-nova-novncproxy
+ - openstack-nova-scheduler
+
+services:
+ - openstack-nova-api
+ - openstack-nova-cert
+ - openstack-nova-conductor
+ - openstack-nova-consoleauth
+ - openstack-nova-novncproxy
+ - openstack-nova-scheduler
diff --git a/deploy/adapters/ansible/roles/nova-controller/vars/main.yml b/deploy/adapters/ansible/roles/nova-controller/vars/main.yml
new file mode 100644
index 00000000..d43b8359
--- /dev/null
+++ b/deploy/adapters/ansible/roles/nova-controller/vars/main.yml
@@ -0,0 +1,4 @@
+---
+packages_noarch: []
+
+services_noarch: []