From ed3db26045041c2e5f25f7a60154740bd93cbd48 Mon Sep 17 00:00:00 2001 From: Tiago Gomes Date: Fri, 24 Apr 2015 15:29:41 +0000 Subject: Move postgres-server configuration out of keystone-setup Otherwise postgres-server and keystone-setup services will initially fail, as keystone-setup needs a postgres-server running to succeed, but the postgres-server can only run after some configuration, which was previously being done by keystone-setup. Change-Id: I2d649d494cb54119e3b9bd3d9f6deb46bfb2dd12 --- openstack-keystone.configure | 3 ++ openstack/manifest | 2 + .../system/openstack-ceilometer-setup.service | 4 +- .../systemd/system/openstack-cinder-api.service | 4 +- .../system/openstack-cinder-db-setup.service | 4 +- .../systemd/system/openstack-glance-setup.service | 2 +- .../systemd/system/openstack-ironic-setup.service | 2 +- .../system/openstack-keystone-setup.service | 2 +- .../system/openstack-neutron-db-setup.service | 4 +- .../systemd/system/openstack-nova-db-setup.service | 4 +- .../systemd/system/postgres-server-setup.service | 10 +++++ .../usr/lib/systemd/system/postgres-server.service | 4 +- .../systemd/system/swift-controller-setup.service | 2 +- openstack/usr/share/openstack/keystone.yml | 45 -------------------- openstack/usr/share/openstack/postgres.yml | 48 ++++++++++++++++++++++ .../lib/systemd/system/swift-storage-setup.service | 2 +- 16 files changed, 80 insertions(+), 62 deletions(-) create mode 100644 openstack/usr/lib/systemd/system/postgres-server-setup.service create mode 100644 openstack/usr/share/openstack/postgres.yml diff --git a/openstack-keystone.configure b/openstack-keystone.configure index 7c8631ce..484a37b5 100644 --- a/openstack-keystone.configure +++ b/openstack-keystone.configure @@ -26,6 +26,9 @@ ln -s "/usr/lib/systemd/system/openstack-keystone-setup.service" \ ln -s "/usr/lib/systemd/system/openstack-horizon-setup.service" \ "$ROOT/etc/systemd/system/multi-user.target.wants/openstack-horizon-setup.service" +ln -s "/usr/lib/systemd/system/postgres-server-setup.service" \ + "$ROOT/etc/systemd/system/multi-user.target.wants/postgres-server-setup.service" + ########################################################################## # Check variables ########################################################################## diff --git a/openstack/manifest b/openstack/manifest index 4812c6c3..f4620f8e 100644 --- a/openstack/manifest +++ b/openstack/manifest @@ -120,6 +120,7 @@ template 0100644 0 0 /etc/tempest/tempest.conf 0100644 0 0 /usr/share/openstack/nova/api-paste.ini 0100644 0 0 /usr/share/openstack/openvswitch.yml 0040755 0 0 /usr/share/openstack/postgres +0100644 0 0 /usr/share/openstack/postgres.yml 0100644 0 0 /usr/share/openstack/postgres/pg_hba.conf 0100644 0 0 /usr/share/openstack/postgres/postgresql.conf 0040755 0 0 /usr/share/openstack/rabbitmq @@ -177,6 +178,7 @@ template 0100644 0 0 /etc/tempest/tempest.conf 0100644 0 0 /usr/lib/systemd/system/openvswitch-db-server.service 0100644 0 0 /usr/lib/systemd/system/openvswitch.service 0100644 0 0 /usr/lib/systemd/system/postgres-server.service +0100644 0 0 /usr/lib/systemd/system/postgres-server-setup.service 0100644 0 0 /usr/share/openstack/swift-controller.yml 0100644 0 0 /usr/lib/systemd/system/swift-controller-setup.service 0100644 0 0 /usr/lib/systemd/system/swift-proxy.service diff --git a/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service b/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service index 16eacb55..5d2f7ea5 100644 --- a/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-ceilometer-setup.service @@ -1,7 +1,7 @@ [Unit] Description=Run ceilometer-setup Ansible scripts -After=postgres-server.service openstack-keystone.service openstack-keystone-setup.service -Wants=postgres-server.service openstack-keystone.service +After=postgres-server-setup.service openstack-keystone.service openstack-keystone-setup.service +Wants=postgres-server-setup.service openstack-keystone.service [Service] Type=oneshot diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-api.service b/openstack/usr/lib/systemd/system/openstack-cinder-api.service index d1aaf136..2afb2d6e 100644 --- a/openstack/usr/lib/systemd/system/openstack-cinder-api.service +++ b/openstack/usr/lib/systemd/system/openstack-cinder-api.service @@ -1,8 +1,8 @@ [Unit] Description=OpenStack Volume Service (code-named Cinder) API server ConditionPathExists=/etc/cinder/cinder.conf -After=postgres-server.service network-online.target openstack-cinder-db-setup.service openstack-cinder-config-setup.service -Wants=postgres-server.service network-online.target +After=postgres-server-setup.service network-online.target openstack-cinder-db-setup.service openstack-cinder-config-setup.service +Wants=postgres-server-setup.service network-online.target [Service] Type=simple diff --git a/openstack/usr/lib/systemd/system/openstack-cinder-db-setup.service b/openstack/usr/lib/systemd/system/openstack-cinder-db-setup.service index 01a352e4..bf4a0ad2 100644 --- a/openstack/usr/lib/systemd/system/openstack-cinder-db-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-cinder-db-setup.service @@ -1,8 +1,8 @@ [Unit] Description=Run cinder-db-setup Ansible scripts ConditionPathExists=/etc/cinder/cinder.conf -After=postgres-server.service openstack-cinder-config-setup.service openstack-keystone.service openstack-keystone-setup.service -Wants=postgres-server.service openstack-cinder-config-setup.service openstack-keystone.service +After=postgres-server-setup.service openstack-cinder-config-setup.service openstack-keystone.service openstack-keystone-setup.service +Wants=postgres-server-setup.service openstack-cinder-config-setup.service openstack-keystone.service [Service] Type=oneshot diff --git a/openstack/usr/lib/systemd/system/openstack-glance-setup.service b/openstack/usr/lib/systemd/system/openstack-glance-setup.service index c00c520c..8fec1cfb 100644 --- a/openstack/usr/lib/systemd/system/openstack-glance-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-glance-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Run glance-setup Ansible scripts -After=local-fs.target openstack-keystone-setup.service postgres-server.service +After=local-fs.target openstack-keystone-setup.service postgres-server-setup.service [Service] ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/glance.yml diff --git a/openstack/usr/lib/systemd/system/openstack-ironic-setup.service b/openstack/usr/lib/systemd/system/openstack-ironic-setup.service index 443d2829..5560b881 100644 --- a/openstack/usr/lib/systemd/system/openstack-ironic-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-ironic-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Run ironic-setup Ansible scripts -After=local-fs.target openstack-keystone-setup.service postgres-server.service +After=local-fs.target openstack-keystone-setup.service postgres-server-setup.service [Service] ExecStart=/usr/bin/ansible-playbook -v -M /usr/share/ansible/ansible-openstack-modules -i /usr/share/openstack/hosts /usr/share/openstack/ironic.yml diff --git a/openstack/usr/lib/systemd/system/openstack-keystone-setup.service b/openstack/usr/lib/systemd/system/openstack-keystone-setup.service index 9ea04c1d..b5348735 100644 --- a/openstack/usr/lib/systemd/system/openstack-keystone-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-keystone-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Run keystone-setup Ansible scripts -After=local-fs.target postgres-server.service +After=local-fs.target postgres-server-setup.service ConditionPathExists=/etc/openstack/keystone.conf [Service] diff --git a/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service b/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service index 68874a6e..9e4c0bdb 100644 --- a/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-neutron-db-setup.service @@ -1,8 +1,8 @@ [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 openstack-neutron-config-setup.service -Wants=network-online.target openstack-keystone.service postgres-server.service +After=network-online.target openstack-keystone.service postgres-server-setup.service openstack-keystone-setup.service openstack-neutron-config-setup.service +Wants=network-online.target openstack-keystone.service postgres-server-setup.service [Service] Type=oneshot diff --git a/openstack/usr/lib/systemd/system/openstack-nova-db-setup.service b/openstack/usr/lib/systemd/system/openstack-nova-db-setup.service index 5a280917..55f1a8ca 100644 --- a/openstack/usr/lib/systemd/system/openstack-nova-db-setup.service +++ b/openstack/usr/lib/systemd/system/openstack-nova-db-setup.service @@ -1,8 +1,8 @@ [Unit] Description=Run nova-db-setup Ansible scripts ConditionPathExists=/etc/openstack/neutron.conf -After=postgres-server.service openstack-keystone.service openstack-keystone-setup.service openstack-nova-config-setup.service -Wants=postgres-server.service openstack-keystone.service +After=postgres-server-setup.service openstack-keystone.service openstack-keystone-setup.service openstack-nova-config-setup.service +Wants=postgres-server-setup.service openstack-keystone.service [Service] Type=oneshot diff --git a/openstack/usr/lib/systemd/system/postgres-server-setup.service b/openstack/usr/lib/systemd/system/postgres-server-setup.service new file mode 100644 index 00000000..5bb70eb7 --- /dev/null +++ b/openstack/usr/lib/systemd/system/postgres-server-setup.service @@ -0,0 +1,10 @@ +[Unit] +Description=Run postgres-setup Ansible scripts +After=local-fs.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/ansible-playbook -v -i /usr/share/openstack/hosts /usr/share/openstack/postgres.yml + +[Install] +WantedBy=multi-user.target diff --git a/openstack/usr/lib/systemd/system/postgres-server.service b/openstack/usr/lib/systemd/system/postgres-server.service index 70b2fd09..cd559fa0 100644 --- a/openstack/usr/lib/systemd/system/postgres-server.service +++ b/openstack/usr/lib/systemd/system/postgres-server.service @@ -13,9 +13,9 @@ Environment=PGROOT=/var/lib/pgsql SyslogIdentifier=postgres PIDFile=/var/lib/pgsql/data/postmaster.pid -ExecStart= /usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120 +ExecStart=/usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120 ExecReload=/usr/bin/pg_ctl -s -D ${PGROOT}/data reload -ExecStop= /usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast +ExecStop=/usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast # Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in # killing Postgres, so adjust it downward diff --git a/openstack/usr/lib/systemd/system/swift-controller-setup.service b/openstack/usr/lib/systemd/system/swift-controller-setup.service index 3e0ddaf7..3da73e7e 100644 --- a/openstack/usr/lib/systemd/system/swift-controller-setup.service +++ b/openstack/usr/lib/systemd/system/swift-controller-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Run swift-controller-setup (once) -After=local-fs.target postgres-server.service openstack-keystone-setup.service openstack-keystone.service +After=local-fs.target postgres-server-setup.service openstack-keystone-setup.service openstack-keystone.service [Service] Type=oneshot diff --git a/openstack/usr/share/openstack/keystone.yml b/openstack/usr/share/openstack/keystone.yml index 64a78ccd..330d74d0 100644 --- a/openstack/usr/share/openstack/keystone.yml +++ b/openstack/usr/share/openstack/keystone.yml @@ -42,51 +42,6 @@ with_items: - rabbitmq-server - # Postgres configuration, this may end up in a different playbook - - name: Create postgres user - user: - name: postgres - comment: PostgreSQL Server - shell: /sbin/nologin - home: /var/lib/pgsql - - - name: Create the postgres directories - file: - path: "{{ item }}" - state: directory - owner: postgres - group: postgres - with_items: - - /var/run/postgresql - - /var/lib/pgsql/data - - - name: Initialise postgres database - command: pg_ctl -D /var/lib/pgsql/data initdb - args: - creates: /var/lib/pgsql/data/base - sudo: yes - sudo_user: postgres - - - name: Add the configuration needed for postgres for Openstack - template: - src: /usr/share/openstack/postgres/{{ item }} - dest: /var/lib/pgsql/data/{{ item }} - owner: postgres - group: postgres - mode: 0600 - with_items: - - postgresql.conf - - pg_hba.conf - - - name: Enable and start postgres services - service: - name: "{{ item }}" - enabled: yes - state: started - with_items: - - postgres-server - - # Keystone configuration - name: Create the keystone user. user: diff --git a/openstack/usr/share/openstack/postgres.yml b/openstack/usr/share/openstack/postgres.yml new file mode 100644 index 00000000..3cf23704 --- /dev/null +++ b/openstack/usr/share/openstack/postgres.yml @@ -0,0 +1,48 @@ +--- +- hosts: localhost + vars_files: + - "/etc/openstack/keystone.conf" + tasks: + + - name: Create postgres user + user: + name: postgres + comment: PostgreSQL Server + shell: /sbin/nologin + home: /var/lib/pgsql + + - name: Create the postgres directories + file: + path: "{{ item }}" + state: directory + owner: postgres + group: postgres + with_items: + - /var/run/postgresql + - /var/lib/pgsql/data + + - name: Initialise postgres database + command: pg_ctl -D /var/lib/pgsql/data initdb + args: + creates: /var/lib/pgsql/data/base + sudo: yes + sudo_user: postgres + + - name: Add the configuration needed for postgres for Openstack + template: + src: /usr/share/openstack/postgres/{{ item }} + dest: /var/lib/pgsql/data/{{ item }} + owner: postgres + group: postgres + mode: 0600 + with_items: + - postgresql.conf + - pg_hba.conf + + - name: Enable and start postgres services + service: + name: "{{ item }}" + enabled: yes + state: started + with_items: + - postgres-server diff --git a/swift/usr/lib/systemd/system/swift-storage-setup.service b/swift/usr/lib/systemd/system/swift-storage-setup.service index e284fbed..dcba1017 100644 --- a/swift/usr/lib/systemd/system/swift-storage-setup.service +++ b/swift/usr/lib/systemd/system/swift-storage-setup.service @@ -1,6 +1,6 @@ [Unit] Description=Run openstack-swift-storage-setup (once) -After=local-fs.target postgres-server.service +After=local-fs.target postgres-server-setup.service [Service] Type=oneshot -- cgit v1.2.1