Disable xinetd class when creating swift-storage puppet configuration
authorMichele Baldessari <michele@acksyn.org>
Sat, 14 Oct 2017 18:12:58 +0000 (20:12 +0200)
committerEmilien Macchi <emilien@redhat.com>
Thu, 19 Oct 2017 03:31:58 +0000 (03:31 +0000)
Due to missing puppet invocation with --detailed-exitcodes we ignored
a large amount of puppet errors during deploy. Swift storage fails
during the puppet_config step with the following error:

Debug: /Stage[main]/Swift::Storage::Object/Swift::Storage::Generic[object]/Package[swift-object]: Not tagged with file, file_line, concat, augeas, cron, swif t_proxy_config, swift_config, swift_container_config, swift_container_sync_realms_config, swift_account_config, swift_object_config, swift_object_expirer_con fig, rsync::server
Debug: /Stage[main]/Swift::Storage::Object/Swift::Storage::Generic[object]/Package[swift-object]: Resource is being skipped, unscheduling all events
Debug: Executing: '/usr/bin/systemctl is-active xinetd'
Debug: Executing: '/usr/bin/systemctl is-enabled xinetd'
Debug: Executing: '/usr/bin/systemctl unmask xinetd'
Debug: Executing: '/usr/bin/systemctl start xinetd'
Debug: Runing journalctl command to get logs for systemd start failure: journalctl -n 50 --since '5 minutes ago' -u xinetd --no-pager
Debug: Executing: 'journalctl -n 50 --since '5 minutes ago' -u xinetd --no-pager'
Error: Systemd start for xinetd failed!

The problem is that by using the rsync::server tag we end up including
the xinetd class automatically which will try to start a service inside
a container. By nooping the xinetd class, we're able avoid systemctl
calls and have a successfuly deployment. The resulting swift_rsync
container seems to work correctly:

[root@overcloud-controller-0 ~]# docker exec -it swift_rsync /bin/bash -c "ps -axuwf"
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        10  0.0  0.0  47444  1624 pts/1    Rs+  18:16   0:00 ps -axuwf
root         1  0.0  0.0    188     4 ?        Ss   17:27   0:00 /usr/local/bin/dumb-init /bin/bash /usr/local/bin/kolla_start
root         6  0.0  0.0  11036   924 ?        Ss   17:27   0:00 /usr/bin/rsync --daemon --no-detach --config=/etc/rsyncd.conf

[root@overcloud-controller-0 ~]# docker logs swift_rsync 2>&1|tail -n4
INFO:__main__:Deleting /etc/rsyncd.conf
INFO:__main__:Copying /var/lib/kolla/config_files/src/etc/rsyncd.conf to /etc/rsyncd.conf
INFO:__main__:Writing out command to execute
Running command: '/usr/bin/rsync --daemon --no-detach --config=/etc/rsyncd.conf'

Change-Id: I5e43e8fd61e002d2acc56a7de52e6aae64ab60be
Closes-Bug: #1723463
(cherry picked from commit b5eeeab73e12efecc86ea7deebc105eee0739510)

docker/services/swift-storage.yaml

index e0c1194..2d7aff6 100644 (file)
@@ -83,7 +83,10 @@ outputs:
       logging_source: {get_attr: [SwiftStorageBase, role_data, logging_source]}
       logging_groups: {get_attr: [SwiftStorageBase, role_data, logging_groups]}
       step_config: &step_config
-        get_attr: [SwiftStorageBase, role_data, step_config]
+        list_join:
+          - "\n"
+          - - {get_attr: [SwiftStorageBase, role_data, step_config]}
+            - "class xinetd() {}"
       service_config_settings: {get_attr: [SwiftStorageBase, role_data, service_config_settings]}
       # BEGIN DOCKER SETTINGS
       puppet_config: