compass-adapters/ansible/roles/plumgrid-plugin/tasks/main.yml

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"