summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles
diff options
context:
space:
mode:
authorbaigk <baiguoku@huawei.com>2015-08-06 02:37:33 -0400
committerbaigk <baiguoku@huawei.com>2015-08-09 22:47:56 -0400
commit87612abc0e24cafd89a49e350165b08fe1608233 (patch)
tree07b156c0268fd189f92e8a0730118edc51b8073f /deploy/adapters/ansible/roles
parent5aedf594112c0749b6e9039d15b9fe70d210a942 (diff)
support deployment openstack juno with ansible for compass in centos7.1
JIRA: COMPASS-6 Change-Id: I8ef865e8acfe29c3ff5c7e9030e4cebabed3457b Signed-off-by: baigk <baiguoku@huawei.com>
Diffstat (limited to 'deploy/adapters/ansible/roles')
-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
87 files changed, 686 insertions, 364 deletions
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: []