From 16feb3c5ddf4fe0068185db3ea809996e6f40c43 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Tue, 14 Apr 2015 13:00:50 +0000 Subject: OpenStack: Split neutron config up into MANAGER, CONTROLLER and AGENT This adds NEUTRON_ENABLE_{MANAGER,CONTROLLER,AGENT} to determine which parts should be run on a node, so a network node has MANAGER enabled, but doesn't need CONTROLLER or AGENT, since those will be run on the controller and compute nodes respectively. This works by the configuration extension selectively enabling systemd units, with config-setup always being run, and db-setup run on the controller node. Rather than having the enable logic in 3 distinct setup services, their dependencies have been augmented to run after appropriate setup services if they are enabled, and to not run if their configuration hasn't been created. Change-Id: I7625074c94acfb49fc68660440609b0fe9c0052d --- .../systemd/system/openstack-neutron-config-setup.service | 13 +++++++++++++ .../lib/systemd/system/openstack-neutron-db-setup.service | 13 +++++++++++++ .../lib/systemd/system/openstack-neutron-dhcp-agent.service | 5 +++-- .../lib/systemd/system/openstack-neutron-l3-agent.service | 5 +++-- .../systemd/system/openstack-neutron-metadata-agent.service | 5 +++-- .../systemd/system/openstack-neutron-ovs-cleanup.service | 5 +++-- .../openstack-neutron-plugin-openvswitch-agent.service | 5 +++-- .../usr/lib/systemd/system/openstack-neutron-server.service | 5 +++-- .../usr/lib/systemd/system/openstack-neutron-setup.service | 10 ---------- 9 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 openstack/usr/lib/systemd/system/openstack-neutron-config-setup.service create mode 100644 openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service delete mode 100644 openstack/usr/lib/systemd/system/openstack-neutron-setup.service (limited to 'openstack/usr/lib/systemd/system') diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-config-setup.service b/openstack/usr/lib/systemd/system/openstack-neutron-config-setup.service new file mode 100644 index 00000000..46e1b585 --- /dev/null +++ b/openstack/usr/lib/systemd/system/openstack-neutron-config-setup.service @@ -0,0 +1,13 @@ +[Unit] +Description=Run neutron-config-setup Ansible scripts +ConditionPathExists=/etc/openstack/neutron.conf +After=openstack-keystone.service openstack-keystone-setup.service +Wants=openstack-keystone.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/neutron-config.yml + +[Install] +WantedBy=multi-user.target diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service b/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service new file mode 100644 index 00000000..4b30e78a --- /dev/null +++ b/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service @@ -0,0 +1,13 @@ +[Unit] +Description=Run neutron-db-setup Ansible scripts +ConditionPathExists=/etc/openstack/neutron.conf +After=network-online.target openstack-keystone.service postgres-server.service openstack-keystone-setup.service +Wants=network-online.target openstack-keystone.service postgres-server.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/neutron-db.yml +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service index 34a682b6..cd9ed9fe 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-dhcp-agent.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron DHCP Agent -After=network-online.target openstack-neutron-ovs-cleanup.service -Wants=network-online.target +ConditionPathExists=/etc/neutron/neutron.conf +After=network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service openstack-neutron-ovs-cleanup.service +Wants=network-online.target openstack-neutron-config-setup.service [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service index bd514aa1..1a6b5928 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-l3-agent.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron Layer 3 Agent -After=network-online.target openstack-neutron-ovs-cleanup.service -Wants=network-online.target +ConditionPathExists=/etc/neutron/neutron.conf +After=network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service openstack-neutron-ovs-cleanup.service +Wants=network-online.target openstack-neutron-config-setup.service [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service index 22bbf675..c96fa3a2 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-metadata-agent.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron Metadata Plugin Agent -After=network-online.target openstack-neutron-setup.service -Wants=network-online.target +ConditionPathExists=/etc/neutron/neutron.conf +After=network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service +Wants=network-online.target openstack-neutron-config-setup.service [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service b/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service index 544531ed..386f50dd 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-ovs-cleanup.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron OVS cleanup -After=network-online.target openstack-neutron-setup.service openvswitch.service -Wants=network-online.target +ConditionPathExists=/etc/neutron/neutron.conf +After=network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service openvswitch.service +Wants=network-online.target openstack-neutron-config-setup.service Before=openstack-neutron-plugin-openvswitch-agent.service ConditionFileIsExecutable=/usr/bin/neutron-ovs-cleanup diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service b/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service index 894c3a45..ade14733 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-plugin-openvswitch-agent.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron OpenvSwitch Plugin Agent -After=network-online.target openstack-neutron-setup.service -Wants=network-online.target +ConditionPathExists=/etc/neutron/neutron.conf +After=network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service +Wants=network-online.target openstack-neutron-config-setup.service [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-server.service b/openstack/usr/lib/systemd/system/openstack-neutron-server.service index 05dfb7aa..3c0e1bda 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-server.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-server.service @@ -1,7 +1,8 @@ [Unit] Description=Neutron Api Server -Wants=openstack-neutron-network-configuration-one-node.service network-online.target -After=network-online.target openstack-neutron-setup.service openstack-neutron-network-configuration-one-node.service +ConditionPathExists=/etc/neutron/neutron.conf +Wants=openstack-neutron-network-configuration-one-node.service network-online.target openstack-neutron-config-setup.service +After=openstack-neutron-network-configuration-one-node.service network-online.target openstack-neutron-config-setup.service openstack-neutron-db-setup.service [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-setup.service b/openstack/usr/lib/systemd/system/openstack-neutron-setup.service deleted file mode 100644 index 99213b6a..00000000 --- a/openstack/usr/lib/systemd/system/openstack-neutron-setup.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Run neutron-setup Ansible scripts -After=network-online.target openstack-keystone-setup.service postgres-server.service -Wants=network-online.target - -[Service] -ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/neutron.yml - -[Install] -WantedBy=multi-user.target -- cgit v1.2.1