# # 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"