Guest User

Untitled

a guest
Jul 19th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. Ruby script /usr/local/externalnodes/bin/create_yaml_config.rb
  2.  
  3.  
  4. #!/usr/bin/env /usr/local/externalnodes/script/runner
  5. #!/usr/bin/env /Users/macbar/dev/externalnodes/script/runner
  6.  
  7. require 'yaml'
  8.  
  9. classes = []
  10. vars = {}
  11.  
  12. node = Node.find(:last, :conditions => {:fqdn => ARGV[0]})
  13. if node == nil
  14. exit 0
  15. end
  16.  
  17. parents = node.get_parents([])
  18.  
  19. node.get_all_classes(parents).each do |c|
  20. classes << c.name
  21. end
  22.  
  23. params = node.get_all_variable_values(parents)
  24.  
  25. config = {}
  26.  
  27. if params != {}
  28. config['parameters'] = node.get_all_variable_values(parents)
  29. end
  30. if classes != []
  31. config['classes'] = classes
  32. end
  33.  
  34. if config != {}
  35. puts config.to_yaml.gsub(/\s*$/,'') #.gsub(/^-([^-].*)/,' -\1').gsub(/\"/,'')
  36. end
  37.  
  38. exit 0
  39.  
  40.  
  41. root@slug:/usr/local/externalnodes/bin # ./create_yaml_config.rb slug.b.cegeka.punchtelematix.net
  42. ---
  43. classes:
  44. - testt
  45. - common
  46.  
  47.  
  48. puppetmasterd output using
  49. external_nodes = /usr/local/externalnodes/bin/create_yaml_config.rb
  50.  
  51.  
  52. notice: Starting Puppet server version 0.24.8
  53. debug: Overriding puppet with cert name slug.b.cegeka.punchtelematix.net
  54. debug: Allowing authenticated client slug.b.cegeka.punchtelematix.net(127.0.0.1) access to puppetmaster.getconfig
  55. debug: Our client is remote
  56. info: Expiring the node cache of slug.b.cegeka.punchtelematix.net
  57. info: Not using expired node for slug.b.cegeka.punchtelematix.net from cache; expired at Fri Nov 27 13:21:48 +0100 2009
  58. debug: Executing '/usr/local/externalnodes/bin/create_yaml_config.rb slug.b.cegeka.punchtelematix.net'
  59. info: Caching node for slug.b.cegeka.punchtelematix.net
  60. notice: Scope(Class[main]): in site.pp
  61. notice: Compiled catalog for slug.b.cegeka.punchtelematix.net in 0.02 seconds
  62.  
  63.  
  64.  
  65.  
  66.  
  67. shell script /usr/local/bin/en.sh
  68.  
  69. #!/bin/sh
  70. # Super-simple external_node script for versions 0.23 and later
  71. cat <<"END"
  72. ---
  73. classes:
  74. - testt
  75. - common
  76. END
  77. exit 0
  78.  
  79.  
  80. puppetmasterd log using
  81. external_nodes = /usr/local/bin/en.sh
  82.  
  83.  
  84. notice: Starting Puppet server version 0.24.8
  85. debug: Overriding puppet with cert name slug.b.cegeka.punchtelematix.net
  86. debug: Allowing authenticated client slug.b.cegeka.punchtelematix.net(127.0.0.1) access to puppetmaster.getconfig
  87. debug: Our client is remote
  88. info: Expiring the node cache of slug.b.cegeka.punchtelematix.net
  89. info: Not using expired node for slug.b.cegeka.punchtelematix.net from cache; expired at Fri Nov 27 13:20:14 +0100 2009
  90. debug: Executing '/usr/local/bin/en.sh slug.b.cegeka.punchtelematix.net'
  91. info: Caching node for slug.b.cegeka.punchtelematix.net
  92. notice: Scope(Class[main]): in site.pp
  93. info: Could not find class common for slug.b.cegeka.punchtelematix.net
  94. notice: Scope(Class[testt]): in class testt - site.pp
  95. notice: Compiled catalog for slug.b.cegeka.punchtelematix.net in 0.01 seconds
Add Comment
Please, Sign In to add comment