Use the local collector to bootstrap deployed servers
authorSteve Baker <sbaker@redhat.com>
Thu, 1 Dec 2016 01:02:54 +0000 (01:02 +0000)
committerJames Slagle <jslagle@redhat.com>
Wed, 5 Apr 2017 02:31:58 +0000 (22:31 -0400)
os-collect-config is already configured to use json files in
/var/lib/os-collect-config/local-data/ as a data source, so this can
be used in the deployed-server get-occ-config.sh to copy in the
required json to generate the required os-collect-config.conf.

Co-Authored-By: James Slagle <jslagle@redhat.com>
Closes-Bug: #1679705
Change-Id: Ibde9e6bf360277d4ff64f66d637a5c7f0360e754

deployed-server/scripts/get-occ-config.sh
releasenotes/notes/get-occ-config-local-connector-5bbec3f591a9f311.yaml [new file with mode: 0644]

index d0cc4df..28f038c 100755 (executable)
@@ -89,16 +89,16 @@ for role in $OVERCLOUD_ROLES; do
         done
 
         echo "======================"
-        echo "$role$i os-collect-config.conf configuration:"
+        echo "$role$i deployed-server.json configuration:"
 
-        config="
-[DEFAULT]
-collectors=request
-command=os-refresh-config
-polling_interval=30
-
-[request]
-metadata_url=$deployed_server_metadata_url"
+        config="{
+  \"os-collect-config\": {
+    \"collectors\": [\"request\", \"local\"],
+    \"request\": {
+      \"metadata_url\": \"$deployed_server_metadata_url\"
+    }
+  }
+}"
 
         echo "$config"
         echo "======================"
@@ -108,12 +108,11 @@ metadata_url=$deployed_server_metadata_url"
         host=
         eval host=\${${role}_hosts_a[i]}
         if [ -n "$host" ]; then
-            # Delete the os-collect-config.conf template so our file won't get
-            # overwritten
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo /bin/rm -f /usr/libexec/os-apply-config/templates/etc/os-collect-config.conf
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host "echo \"$config\" > os-collect-config.conf"
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo cp os-collect-config.conf /etc/os-collect-config.conf
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl restart os-collect-config
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host "echo '$config' > deployed-server.json"
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo mkdir -p -m 0700 /var/lib/os-collect-config/local-data/ || true
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo cp deployed-server.json /var/lib/os-collect-config/local-data/deployed-server.json
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl start os-collect-config
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl enable os-collect-config
         fi
 
         let i+=1
diff --git a/releasenotes/notes/get-occ-config-local-connector-5bbec3f591a9f311.yaml b/releasenotes/notes/get-occ-config-local-connector-5bbec3f591a9f311.yaml
new file mode 100644 (file)
index 0000000..ef8877a
--- /dev/null
@@ -0,0 +1,10 @@
+---
+fixes:
+  - The deployed-server Heat agent configuration script,
+    get-occ-config.sh, is now updated to configure the
+    local data source for os-collect-config instead of
+    configuring /etc/os-collect-config.conf directly. Doing
+    so means that the configuration template for os-apply-config
+    no longer has to be deleted as the file will be rendered
+    correctly with the right data. See
+    https://bugs.launchpad.net/tripleo/+bug/1679705