upgrades: deploy mod_ssl when upgrading apache
authorSofer Athlan-Guyot <sathlang@redhat.com>
Wed, 26 Apr 2017 21:10:24 +0000 (23:10 +0200)
committerSofer Athlan-Guyot <sathlang@redhat.com>
Thu, 27 Apr 2017 06:55:54 +0000 (08:55 +0200)
1) When Apache is upgraded, install mod_ssl rpm.
   See https://bugs.launchpad.net/tripleo/+bug/1682448
   to understand why we need mod_ssl.

2) All services that run Apache for API will use the snippet from
   Apache service to deploy mod_ssl, so we don't duplicate the code
   in all services. It's using the same mechanism as ovs upgrade to
   compile upgrade_tasks between both services.

Change-Id: Ia2f6fea45c2c09790c49baab19b1efcab25e9a84
Closes-Bug: #1686503
(cherry picked from commit a6041608ca68aad4298ed9e8febafc442a250a55)

puppet/services/aodh-api.yaml
puppet/services/apache.yaml
puppet/services/barbican-api.yaml
puppet/services/ceilometer-api.yaml
puppet/services/cinder-api.yaml
puppet/services/gnocchi-api.yaml
puppet/services/keystone.yaml
puppet/services/panko-api.yaml
puppet/services/releasenotes/notes/mod_ssl-e7fd4db71189242e.yaml [new file with mode: 0644]

index d7c87b6..ee5c0fd 100644 (file)
@@ -86,6 +86,12 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Stop aodh_api service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
+        yaql:
+          expression: $.data.apache_upgrade + $.data.aodh_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            aodh_api_upgrade:
+              - name: Stop aodh_api service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
index 2d95015..2f97eb8 100644 (file)
@@ -76,3 +76,6 @@ outputs:
           shell: /usr/bin/systemctl show 'httpd' --property ActiveState | grep '\bactive\b'
           when: httpd_enabled.rc == 0
           tags: step0,validation
+        - name: Ensure mod_ssl package is installed
+          tags: step3
+          yum: name=mod_ssl state=latest
index cba9241..72d68e0 100644 (file)
@@ -146,16 +146,22 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Check if barbican_api is deployed
-          command: systemctl is-enabled openstack-barbican-api
-          tags: common
-          ignore_errors: True
-          register: barbican_api_enabled
-        - name: "PreUpgrade step0,validation: Check service openstack-barbican-api is running"
-          shell: /usr/bin/systemctl show 'openstack-barbican-api' --property ActiveState | grep '\bactive\b'
-          when: barbican_api_enabled.rc == 0
-          tags: step0,validation
-        - name: Install openstack-barbican-api package if it was disabled
-          tags: step3
-          yum: name=openstack-barbican-api state=latest
-          when: barbican_api_enabled.rc != 0
+        yaql:
+          expression: $.data.apache_upgrade + $.data.barbican_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            barbican_api_upgrade:
+              - name: Check if barbican_api is deployed
+                command: systemctl is-enabled openstack-barbican-api
+                tags: common
+                ignore_errors: True
+                register: barbican_api_enabled
+              - name: "PreUpgrade step0,validation: Check service openstack-barbican-api is running"
+                shell: /usr/bin/systemctl show 'openstack-barbican-api' --property ActiveState | grep '\bactive\b'
+                when: barbican_api_enabled.rc == 0
+                tags: step0,validation
+              - name: Install openstack-barbican-api package if it was disabled
+                tags: step3
+                yum: name=openstack-barbican-api state=latest
+                when: barbican_api_enabled.rc != 0
index f5ee9d4..9bf8968 100644 (file)
@@ -93,6 +93,12 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Stop ceilometer_api service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
+        yaql:
+          expression: $.data.apache_upgrade + $.data.ceilometer_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            ceilometer_api_upgrade:
+              - name: Stop ceilometer_api service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
index 49a5f61..dae512f 100644 (file)
@@ -150,25 +150,31 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Check if cinder_api is deployed
-          command: systemctl is-enabled openstack-cinder-api
-          tags: common
-          ignore_errors: True
-          register: cinder_api_enabled
-        - name: "PreUpgrade step0,validation: Check service openstack-cinder-api is running"
-          shell: /usr/bin/systemctl show 'openstack-cinder-api' --property ActiveState | grep '\bactive\b'
-          when: cinder_api_enabled.rc == 0
-          tags: step0,validation
-        - name: check for cinder running under apache (post upgrade)
-          tags: step1
-          shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder"
-          register: cinder_apache
-          ignore_errors: true
-        - name: Stop cinder_api service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
-          when: "cinder_apache.rc == 0"
-        - name: Stop and disable cinder_api service (pre-upgrade not under httpd)
-          tags: step1
-          when: cinder_api_enabled.rc == 0
-          service: name=openstack-cinder-api state=stopped enabled=no
+        yaql:
+          expression: $.data.apache_upgrade + $.data.cinder_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            cinder_api_upgrade:
+              - name: Check if cinder_api is deployed
+                command: systemctl is-enabled openstack-cinder-api
+                tags: common
+                ignore_errors: True
+                register: cinder_api_enabled
+              - name: "PreUpgrade step0,validation: Check service openstack-cinder-api is running"
+                shell: /usr/bin/systemctl show 'openstack-cinder-api' --property ActiveState | grep '\bactive\b'
+                when: cinder_api_enabled.rc == 0
+                tags: step0,validation
+              - name: check for cinder running under apache (post upgrade)
+                tags: step1
+                shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder"
+                register: cinder_apache
+                ignore_errors: true
+              - name: Stop cinder_api service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
+                when: cinder_apache.rc == 0
+              - name: Stop and disable cinder_api service (pre-upgrade not under httpd)
+                tags: step1
+                when: cinder_api_enabled.rc == 0
+                service: name=openstack-cinder-api state=stopped enabled=no
index 08a939a..1ed26ad 100644 (file)
@@ -128,6 +128,12 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Stop gnocchi_api service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
+        yaql:
+          expression: $.data.apache_upgrade + $.data.gnocchi_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            gnocchi_api_upgrade:
+              - name: Stop gnocchi_api service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
index 0b9f10c..d5dfb64 100644 (file)
@@ -332,10 +332,15 @@ outputs:
             horizon::keystone_multidomain_support: true
             horizon::keystone_default_domain: 'Default'
           - {}
-      # Ansible tasks to handle upgrade
-      upgrade_tasks:
-        - name: Stop keystone service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
+      upgrade_tasks:
+        yaql:
+          expression: $.data.apache_upgrade + $.data.keystone_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            keystone_upgrade:
+              - name: Stop keystone service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
index eed9825..a9635d2 100644 (file)
@@ -85,21 +85,27 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        - name: Check if httpd is deployed
-          command: systemctl is-enabled httpd
-          tags: common
-          ignore_errors: True
-          register: httpd_enabled
-        - name: "PreUpgrade step0,validation: Check if httpd is running"
-          shell: >
-            /usr/bin/systemctl show 'httpd' --property ActiveState |
-            grep '\bactive\b'
-          when: httpd_enabled.rc == 0
-          tags: step0,validation
-        - name: Stop panko-api service (running under httpd)
-          tags: step1
-          service: name=httpd state=stopped
-          when: httpd_enabled.rc == 0
-        - name: Install openstack-panko-api package if it was not installed
-          tags: step3
-          yum: name=openstack-panko-api state=latest
+        yaql:
+          expression: $.data.apache_upgrade + $.data.panko_api_upgrade
+          data:
+            apache_upgrade:
+              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+            panko_api_upgrade:
+              - name: Check if httpd is deployed
+                command: systemctl is-enabled httpd
+                tags: common
+                ignore_errors: True
+                register: httpd_enabled
+              - name: "PreUpgrade step0,validation: Check if httpd is running"
+                shell: >
+                  /usr/bin/systemctl show 'httpd' --property ActiveState |
+                  grep '\bactive\b'
+                when: httpd_enabled.rc == 0
+                tags: step0,validation
+              - name: Stop panko-api service (running under httpd)
+                tags: step1
+                service: name=httpd state=stopped
+                when: httpd_enabled.rc == 0
+              - name: Install openstack-panko-api package if it was not installed
+                tags: step3
+                yum: name=openstack-panko-api state=latest
diff --git a/puppet/services/releasenotes/notes/mod_ssl-e7fd4db71189242e.yaml b/puppet/services/releasenotes/notes/mod_ssl-e7fd4db71189242e.yaml
new file mode 100644 (file)
index 0000000..eb7b513
--- /dev/null
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - When a service is deployed in WSGI with Apache, make sure mode_ssl
+    package is deployed during the upgrade process, it's now required
+    by default so Apache can start properly.