summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-01-01 22:47:11 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-01-01 22:47:11 +0100
commitd4f36c7bd68a5c8f6269e765e9819b6bb0e2eef4 (patch)
tree485e28acd1b49774df72608499aa3a630675b84a
parentAdd rss-filter. (diff)
downloadwebdav_server-d4f36c7bd68a5c8f6269e765e9819b6bb0e2eef4.tar.gz
webdav_server-d4f36c7bd68a5c8f6269e765e9819b6bb0e2eef4.tar.xz
Add node classifier.
-rw-r--r--modules/profiles/files/node-classifier.py29
-rw-r--r--modules/profiles/manifests/puppetserver.pp11
2 files changed, 39 insertions, 1 deletions
diff --git a/modules/profiles/files/node-classifier.py b/modules/profiles/files/node-classifier.py
new file mode 100644
index 0000000..3edefd4
--- /dev/null
+++ b/modules/profiles/files/node-classifier.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env pythton
+
+import yaml
+import sys
+
+# https://puppet.com/docs/puppet/7/nodes_external.html
+
+data = {
+ 'yoursql.adrift.space': {
+ # must contain at least either classes or parameters
+ 'classes': [
+ 'profiles::common',
+ ],
+ 'environment': 'mysql',
+ },
+}
+
+def main(args):
+ if len(args) == 1:
+ print('usage ./node-classifier <node-name>')
+ return
+
+ nodename = sys.argv[1]
+ instance = data.get(nodename)
+ if not instance: return 1
+ print(yaml.dump(instance))
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
diff --git a/modules/profiles/manifests/puppetserver.pp b/modules/profiles/manifests/puppetserver.pp
index 8620fae..5bc1c3b 100644
--- a/modules/profiles/manifests/puppetserver.pp
+++ b/modules/profiles/manifests/puppetserver.pp
@@ -2,6 +2,15 @@ class profiles::puppetserver {
# required for the git hook
ensure_packages(['ruby'])
+ file { '/usr/libexec':
+ ensure => directory,
+ }
+
+ file { '/usr/libexec/external-node-classifier':
+ mode => '0555',
+ source => 'puppet:///modules/profiles/node-classifier.py',
+ }
+
class { 'puppet':
server => true,
server_foreman => false,
@@ -9,7 +18,7 @@ class profiles::puppetserver {
server_storeconfigs => true,
server_git_repo => true,
server_git_repo_path => '/var/lib/puppet.git',
- server_external_nodes => '',
+ server_external_nodes => '/usr/libexec/external-node-classifier',
server_strict_variables => true,
}
}