Module: AnsibleTools
- Defined in:
- lib/ansible_tools.rb,
lib/ansible_tools/version.rb
Defined Under Namespace
Classes: TermColor
Constant Summary collapse
- VERSION =
"0.0.4"
Class Method Summary collapse
-
.init(yml_only) ⇒ Object
command ansible-tools init.
-
.init_role(name, yml_only) ⇒ Object
command ansible-tools init -r <rolename>.
-
.init_simple(yml_only) ⇒ Object
command ansible-tools init -s.
- .safe_list_complex ⇒ Object
- .safe_list_simple(role) ⇒ Object
- .safe_list_yml_only(role) ⇒ Object
- .safe_mkdir(dir) ⇒ Object
- .safe_touch(file) ⇒ Object
-
.show ⇒ Object
command ansible-tools show.
Class Method Details
.init(yml_only) ⇒ Object
command ansible-tools init
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/ansible_tools.rb', line 9 def self.init(yml_only) simple = yml_only ? safe_list_yml_only('common') : safe_list_simple('common') complex = safe_list_complex() # dir simple[:dir].each { |dir| safe_mkdir(dir) } complex[:dir].each { |dir| safe_mkdir(dir) } # file simple[:file].each { |file| safe_touch(file) } complex[:file].each { |file| safe_touch(file) } unless yml_only end |
.init_role(name, yml_only) ⇒ Object
command ansible-tools init -r <rolename>
31 32 33 34 35 36 37 |
# File 'lib/ansible_tools.rb', line 31 def self.init_role(name, yml_only) role = yml_only ? safe_list_yml_only("#{name}") : safe_list_simple("#{name}") # dir role[:dir].each { |dir| safe_mkdir(dir) } # file role[:file].each { |file| safe_touch(file) } end |
.init_simple(yml_only) ⇒ Object
command ansible-tools init -s
22 23 24 25 26 27 28 |
# File 'lib/ansible_tools.rb', line 22 def self.init_simple(yml_only) simple = yml_only ? safe_list_yml_only('common') : safe_list_simple('common') # dir simple[:dir].each { |dir| safe_mkdir(dir) } # file simple[:file].each { |file| safe_touch(file) } end |
.safe_list_complex ⇒ Object
80 81 82 83 84 85 86 87 |
# File 'lib/ansible_tools.rb', line 80 def self.safe_list_complex() dir = Array.new group = 'group_vars' host = 'host_vars' dir = [group, host] file = ["production", "stage", "#{group}/group1", "#{group}/group2", "#{host}/hostname1", "#{host}/hostname2"] return {:dir => dir, :file => file} end |
.safe_list_simple(role) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/ansible_tools.rb', line 39 def self.safe_list_simple(role) dir = Array.new dir_role = "roles/#{role}" tasks = "#{dir_role}/tasks" handlers = "#{dir_role}/handlers" templates = "#{dir_role}/templates" vars = "#{dir_role}/vars" files = "#{dir_role}/files" dir = [tasks,handlers,templates,vars,files] file = Array.new site = 'site.yml' f_task = "#{tasks}/main.yml" f_handlers = "#{handlers}/main.yml" f_templates = "#{templates}/foo.conf.j2" f_vars = "#{vars}/main.yml" f_file = "#{files}/bar.txt" file = [site,f_task,f_handlers,f_templates, f_vars, f_file] return {:dir => dir, :file => file} end |
.safe_list_yml_only(role) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ansible_tools.rb', line 60 def self.safe_list_yml_only(role) dir = Array.new dir_role = "roles/#{role}" tasks = "#{dir_role}/tasks" handlers = "#{dir_role}/handlers" templates = "#{dir_role}/templates" vars = "#{dir_role}/vars" files = "#{dir_role}/files" dir = [tasks,handlers,templates,vars,files] file = Array.new site = 'site.yml' f_task = "#{tasks}/main.yml" f_handlers = "#{handlers}/main.yml" f_vars = "#{vars}/main.yml" file = [site,f_task,f_handlers, f_vars] return {:dir => dir, :file => file} end |
.safe_mkdir(dir) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/ansible_tools.rb', line 89 def self.safe_mkdir(dir) unless FileTest.exist?("#{dir}") FileUtils.mkdir_p("#{dir}") TermColor.green puts "\t\tcreate\t#{dir}" TermColor.reset else TermColor.red puts "\t\texists\t#{dir}" TermColor.reset end end |
.safe_touch(file) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/ansible_tools.rb', line 102 def self.safe_touch(file) unless File.exists? "#{file}" File.open("#{file}", 'w') do |f| #f.puts content end TermColor.green puts "\t\tcreate\t#{file}" TermColor.reset else TermColor.red puts "\t\texists\t#{file}" TermColor.reset end end |
.show ⇒ Object
command ansible-tools show
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/ansible_tools.rb', line 118 def self.show() begin if Dir.glob("**/vars/*").count == 0 puts 'Not Found' exit 1 end table = Ruport::Data::Table.new table.column_names = %w[File Key Value] Dir.glob("**/vars/*") {|f| next unless FileTest.file?(f) #skip directory yml = YAML.load_file(f) if yml == false puts "No Variables in #{f}" next end yml.each{|key,value| table << [f,key,value] } } if table.count > 0 puts table.to_text end rescue puts 'Sorry. Error hanppend..' exit 1 end end |