
Support Compass OpenStack installation with integrated PLUMgrid Open Networking Suite. PLUMgrid ONS is a comprehensive software-only networking solution for OpenStack which integrates with Neutron. The current implementation supports OpenStack Juno with a single controller. * add role for core plumgrid software * add role for plugin to neutron * add single-controller playbook to include plumgrid roles Change-Id: I4c320e9282bcafe450556e70020505fdb5aaf396
149 lines
4.2 KiB
YAML
149 lines
4.2 KiB
YAML
#
|
|
# Copyright (c) 2012-2015, PLUMgrid, http://plumgrid.com
|
|
#
|
|
|
|
# Create a PLUMgrid sources.list
|
|
- name: Create plumgrid sources.list
|
|
lineinfile:
|
|
dest: /etc/apt/sources.list.d/plumgrid.list
|
|
line: "deb {{ plumgrid_repo }}/plumgrid ./"
|
|
state: present
|
|
create: yes
|
|
|
|
# Point to LCM repo create a PLUMgrid sources.list
|
|
- name: Add plumgrid-images to repo
|
|
lineinfile:
|
|
dest: /etc/apt/sources.list.d/plumgrid.list
|
|
line: "deb {{ plumgrid_repo }}/plumgrid-images ./"
|
|
state: present
|
|
|
|
# Update repositories
|
|
- name: Running apt-update
|
|
apt:
|
|
update_cache: yes
|
|
|
|
# Install package neutron-plugin-plumgrid
|
|
- name: Install neutron-plugin-plumgrid
|
|
apt:
|
|
name: neutron-plugin-plumgrid
|
|
state: present
|
|
|
|
# Install package plumgrid-pythonlib
|
|
- name: Install plumgrid-pythonlib
|
|
apt:
|
|
name: plumgrid-pythonlib
|
|
state: present
|
|
|
|
# Modify template fies
|
|
- name: Setup plumgrid.ini
|
|
template: >
|
|
src=plumgrid.ini
|
|
dest=/etc/neutron/plugins/plumgrid/plumgrid.ini
|
|
owner={{ system_group }}
|
|
group={{ system_user }}
|
|
|
|
- name: Replace plugin.ini reference
|
|
replace:
|
|
dest: /etc/default/neutron-server
|
|
regexp: "^NEUTRON_PLUGIN_CONFIG.*"
|
|
replace: "NEUTRON_PLUGIN_CONFIG=\"/etc/neutron/plugins/plumgrid/plumgrid.ini\""
|
|
|
|
# Modify neutron configuration
|
|
- name: Add plumlib template
|
|
template: >
|
|
src=plumlib.py
|
|
dest=/usr/lib/python2.7/dist-packages/neutron/plugins/plumgrid/drivers/plumlib.py
|
|
owner={{ system_group }}
|
|
group={{ system_user }}
|
|
|
|
- name: Replace plugin with Plumgrid
|
|
replace:
|
|
dest: /etc/neutron/neutron.conf
|
|
regexp: '^core_plugin.*'
|
|
replace: 'core_plugin = neutron.plugins.plumgrid.plumgrid_plugin.plumgrid_plugin.NeutronPluginPLUMgridV2'
|
|
|
|
- name: Replace mysql connection spec
|
|
replace:
|
|
dest: /etc/neutron/neutron.conf
|
|
regexp: '^connection.*'
|
|
replace: 'connection = mysql://neutron:{{ NEUTRON_DBPASS }}@{{ db_host }}/ovs_neutron'
|
|
|
|
- name: Comment service_plugins
|
|
replace:
|
|
dest: /etc/neutron/neutron.conf
|
|
regexp: '^service_plugins'
|
|
replace: '#service_plugins'
|
|
|
|
- name: Update nova.conf
|
|
lineinfile:
|
|
dest: "/etc/nova/nova.conf"
|
|
insertafter: "DEFAULT"
|
|
state: present
|
|
create: yes
|
|
line: "{{ item }}"
|
|
with_items:
|
|
- libvirt_cpu_mode=none
|
|
- libvirt_vif_type=ethernet
|
|
- scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
|
|
|
|
- name: Add plumgrid_plugin template
|
|
template: >
|
|
src=plumgrid_plugin.py
|
|
dest=/usr/lib/python2.7/dist-packages/neutron/plugins/plumgrid/plumgrid_plugin/plumgrid_plugin.py
|
|
owner={{ system_group }}
|
|
group={{ system_user }}
|
|
|
|
- name: Add plumlib filters
|
|
template: >
|
|
src=plumlib.filters
|
|
dest=/etc/neutron/rootwrap.d/plumlib.filters
|
|
owner={{ system_group }}
|
|
group={{ system_user }}
|
|
|
|
- name: Update Plumlib authentication
|
|
replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: '#admin_user = admin_username'
|
|
replace: 'admin_user = neutron'
|
|
|
|
- replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: '#admin_password = admin_password'
|
|
replace: 'admin_password = {{ neutron_service_password }}'
|
|
|
|
- replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: '#auth_uri = http://127.0.0.1:35357/v2.0/'
|
|
replace: 'auth_uri = http://{{ internal_lb_vip_address }}:5000/v2.0'
|
|
|
|
- replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: '#admin_tenant_name = admin_tenant_name'
|
|
replace: 'admin_tenant_name = service'
|
|
|
|
# Enable Metadata
|
|
- name: Enable Metadata
|
|
replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: 'enable_pg_metadata = False'
|
|
replace: 'enable_pg_metadata = True'
|
|
when: enable_pg_metadata == True
|
|
|
|
- name: Enable Metadata mode
|
|
replace:
|
|
dest: /etc/neutron/plugins/plumgrid/plumlib.ini
|
|
regexp: 'metadata_mode = tunnel'
|
|
replace: 'metadata_mode = local'
|
|
when: enable_pg_metadata == True
|
|
|
|
- name: Replace plugin config file
|
|
replace:
|
|
dest: /etc/init/neutron-server.conf
|
|
regexp: '/etc/neutron/plugins/ml2/ml2_conf.ini'
|
|
replace: '/etc/neutron/plugins/plumgrid/plumgrid.ini'
|
|
|
|
- name: Start neutron server
|
|
service: name=neutron-server state=restarted
|
|
register: service_started
|
|
failed_when: "'msg' in service_started and 'FAIL' in service_started.msg|upper"
|