]> gitweb.fluxo.info Git - hydra.git/commitdiff
Compile configuration
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 23 Jun 2016 16:35:43 +0000 (13:35 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 23 Jun 2016 16:35:43 +0000 (13:35 -0300)
doc/todo.rst
share/hydra/compile [new file with mode: 0755]

index 7351c87969e8d0868a1e8ca985c89c5aa30b0f5f..7c23e48d3c320233bd1ab8822dd87fa161efd1bf 100644 (file)
@@ -3,6 +3,7 @@ TODO
 
 - init: version control in the superproject?
 - metrics and alarms subsystem.
+- compile: known_hosts.
 - deploy:
     - fqdn match via local config lookup.
     - fact collection.
diff --git a/share/hydra/compile b/share/hydra/compile
new file mode 100755 (executable)
index 0000000..1dd7b07
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/bash
+#
+# Compile configuration.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License along with this program.  If not, see
+# <http://www.gnu.org/licenses/>.
+
+# Load
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+# Global configuration
+CONFIG="$HYDRA_FOLDER/puppet/config/compiled.yaml"
+
+# Nodes
+NODES="`hydra $HYDRA nodes`"
+
+echo "Starting a fresh compiled config..."
+mkdir -p "`dirname $CONFIG`"
+echo "---"                                                           > $CONFIG
+echo "#"                                                            >> $CONFIG
+echo "# Compiled configuration."                                    >> $CONFIG
+echo "# Do not edit this file. Use 'hydra $HYDRA compile' instead." >> $CONFIG
+echo "#"                                                            >> $CONFIG
+echo "compiled:"                                                    >> $CONFIG
+
+#
+# SSH
+#
+echo "Handling SSH keys..."
+echo "  ssh:" >> $CONFIG
+
+# Known hosts
+# From facter
+#echo "Processing known_hosts entries..."
+#echo "    hosts:" >> $CONFIG
+
+# Authorized keys
+#echo "Processing authorized_keys entries..."
+echo "    keys:" >> $CONFIG
+
+for node in $NODES; do
+  echo "... for $node"
+  key="$(keyringer $HYDRA decrypt nodes/$node/ssh/id_rsa.pub 2> /dev/null)"
+  echo "      $node: '$key'" >> $CONFIG
+done