ansible_tools 0.0.3.1 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.coveralls.yml +2 -0
- data/Gemfile +2 -0
- data/README.md +41 -36
- data/bin/ansible-tools +5 -4
- data/lib/ansible_tools/version.rb +1 -1
- data/lib/ansible_tools.rb +37 -17
- data/spec/spec_helper.rb +6 -0
- metadata +6 -3
data/.coveralls.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,91 +2,93 @@
|
|
2
2
|
|
3
3
|
Ansible Tools e.g. Create directory by BestPractice
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'ansible_tools'
|
5
|
+
[![Code Climate](https://codeclimate.com/github/volanja/ansible_tools.png)](https://codeclimate.com/github/volanja/ansible_tools)
|
6
|
+
[![Coverage Status](https://coveralls.io/repos/volanja/ansible_tools/badge.png)](https://coveralls.io/r/volanja/ansible_tools)
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
$ bundle install
|
14
|
-
|
15
|
-
Or install it yourself as:
|
8
|
+
## Installation
|
16
9
|
|
17
|
-
|
10
|
+
Install it yourself as:
|
11
|
+
```
|
12
|
+
$ gem install ansible_tools
|
13
|
+
```
|
18
14
|
|
19
15
|
## Usage
|
20
16
|
|
21
17
|
```
|
22
18
|
$ ansible-tools
|
23
19
|
Commands:
|
24
|
-
ansible-tools help [COMMAND]
|
25
|
-
ansible-tools init [-s][-r]
|
26
|
-
ansible-tools show
|
27
|
-
ansible-tools version
|
20
|
+
ansible-tools help [COMMAND] # Describe available commands or one specific command
|
21
|
+
ansible-tools init [-s][-r][-y] # create ansible files by BestPractice
|
22
|
+
ansible-tools show # show ansible valiables in vars/main.yml
|
23
|
+
ansible-tools version # show version
|
28
24
|
```
|
29
25
|
|
30
26
|
### BestPractice
|
31
27
|
[Best Practices - ANSIBLEWORKS](http://www.ansibleworks.com/docs/playbooks_best_practices.html)
|
32
28
|
|
33
29
|
```
|
34
|
-
$ ansbile-tools init
|
30
|
+
$ ansbile-tools init [-y]
|
35
31
|
create roles/common/tasks
|
36
32
|
create roles/common/handlers
|
37
33
|
create roles/common/templates
|
38
34
|
create roles/common/vars
|
39
|
-
create roles/common/
|
40
|
-
create
|
41
|
-
create
|
35
|
+
create roles/common/files
|
36
|
+
create group_vars
|
37
|
+
create host_vars
|
42
38
|
create site.yml
|
43
39
|
create roles/common/tasks/main.yml
|
44
40
|
create roles/common/handlers/main.yml
|
45
|
-
create roles/common/templates/foo.conf.j2
|
41
|
+
create roles/common/templates/foo.conf.j2 #(*1)
|
46
42
|
create roles/common/vars/main.yml
|
47
|
-
create roles/common/
|
48
|
-
create production
|
49
|
-
create stage
|
50
|
-
create
|
51
|
-
create
|
52
|
-
create
|
53
|
-
create
|
43
|
+
create roles/common/files/bar.txt #(*1)
|
44
|
+
create production #(*1)
|
45
|
+
create stage #(*1)
|
46
|
+
create group_vars/group1 #(*1)
|
47
|
+
create group_vars/group2 #(*1)
|
48
|
+
create host_vars/hostname1 #(*1)
|
49
|
+
create host_vars/hostname2 #(*1)
|
50
|
+
|
51
|
+
(*1)...if set [-y], this file is not create.
|
54
52
|
```
|
55
53
|
|
56
54
|
### Simple
|
57
55
|
|
58
56
|
```
|
59
|
-
$ ansbile-tools init -s
|
57
|
+
$ ansbile-tools init -s [-y]
|
60
58
|
create roles/common/tasks
|
61
59
|
create roles/common/handlers
|
62
60
|
create roles/common/templates
|
63
61
|
create roles/common/vars
|
64
|
-
create roles/common/
|
62
|
+
create roles/common/files
|
65
63
|
create site.yml
|
66
64
|
create roles/common/tasks/main.yml
|
67
65
|
create roles/common/handlers/main.yml
|
68
|
-
create roles/common/templates/foo.conf.j2
|
66
|
+
create roles/common/templates/foo.conf.j2 #(*1)
|
69
67
|
create roles/common/vars/main.yml
|
70
|
-
create roles/common/
|
68
|
+
create roles/common/files/bar.txt #(*1)
|
69
|
+
|
70
|
+
(*1)...if set [-y], this file is not create.
|
71
71
|
```
|
72
72
|
|
73
73
|
### Add Role
|
74
74
|
|
75
75
|
```
|
76
|
-
$ ansbile-tools init -r <roles name>
|
76
|
+
$ ansbile-tools init -r <roles name> [-y]
|
77
77
|
|
78
78
|
$ ansible-tools init -r gitlab
|
79
79
|
create roles/gitlab/tasks
|
80
80
|
create roles/gitlab/handlers
|
81
81
|
create roles/gitlab/templates
|
82
82
|
create roles/gitlab/vars
|
83
|
-
create roles/gitlab/
|
83
|
+
create roles/gitlab/files
|
84
84
|
create site.yml
|
85
85
|
create roles/gitlab/tasks/main.yml
|
86
86
|
create roles/gitlab/handlers/main.yml
|
87
|
-
create roles/gitlab/templates/foo.conf.j2
|
87
|
+
create roles/gitlab/templates/foo.conf.j2 #(*1)
|
88
88
|
create roles/gitlab/vars/main.yml
|
89
|
-
create roles/gitlab/
|
89
|
+
create roles/gitlab/files/bar.txt #(*1)
|
90
|
+
|
91
|
+
(*1)...if set [-y], this file is not create.
|
90
92
|
```
|
91
93
|
|
92
94
|
### Show Variables
|
@@ -110,7 +112,7 @@ show version
|
|
110
112
|
|
111
113
|
```
|
112
114
|
$ ansbile-tools version
|
113
|
-
0.0.
|
115
|
+
0.0.4
|
114
116
|
```
|
115
117
|
|
116
118
|
## Contributing
|
@@ -121,5 +123,8 @@ $ ansbile-tools version
|
|
121
123
|
4. Push to the branch (`git push origin my-new-feature`)
|
122
124
|
5. Create new Pull Request
|
123
125
|
|
126
|
+
## History
|
127
|
+
0.0.4 Add Option init [-y]
|
128
|
+
|
124
129
|
## TODO
|
125
130
|
+ Make Test
|
data/bin/ansible-tools
CHANGED
@@ -7,16 +7,17 @@ require 'thor'
|
|
7
7
|
|
8
8
|
class Cli < Thor
|
9
9
|
|
10
|
-
desc "init [-s][-r]", "create ansible files by BestPractice"
|
10
|
+
desc "init [-s][-r][-y]", "create ansible files by BestPractice"
|
11
11
|
option :simple, :type => :boolean, :aliases => '-s', :desc => "simple-mode, create only setup.yml, roles/common"
|
12
12
|
option :role, :type => :string, :aliases => '-r', :desc => "create roles/ROLE"
|
13
|
+
option :"yml-only", :type => :boolean, :aliases => '-y', :desc => "create directory and yml"
|
13
14
|
def init
|
14
15
|
if options[:simple]
|
15
|
-
AnsibleTools.init_simple
|
16
|
+
AnsibleTools.init_simple(options[:"yml-only"])
|
16
17
|
elsif options[:role]
|
17
|
-
AnsibleTools.init_role("#{options[:role]}")
|
18
|
+
AnsibleTools.init_role("#{options[:role]}", options[:"yml-only"])
|
18
19
|
else
|
19
|
-
AnsibleTools.init
|
20
|
+
AnsibleTools.init(options[:"yml-only"])
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
data/lib/ansible_tools.rb
CHANGED
@@ -6,21 +6,21 @@ require 'ruport'
|
|
6
6
|
module AnsibleTools
|
7
7
|
|
8
8
|
# command ansible-tools init
|
9
|
-
def self.init()
|
10
|
-
simple = safe_list_simple('common')
|
9
|
+
def self.init(yml_only)
|
10
|
+
simple = yml_only ? safe_list_yml_only('common') : safe_list_simple('common')
|
11
11
|
complex = safe_list_complex()
|
12
12
|
# dir
|
13
13
|
simple[:dir].each { |dir| safe_mkdir(dir) }
|
14
14
|
complex[:dir].each { |dir| safe_mkdir(dir) }
|
15
15
|
# file
|
16
16
|
simple[:file].each { |file| safe_touch(file) }
|
17
|
-
complex[:file].each { |file| safe_touch(file) }
|
17
|
+
complex[:file].each { |file| safe_touch(file) } unless yml_only
|
18
18
|
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# command ansible-tools init -s
|
22
|
-
def self.init_simple()
|
23
|
-
simple = safe_list_simple('common')
|
22
|
+
def self.init_simple(yml_only)
|
23
|
+
simple = yml_only ? safe_list_yml_only('common') : safe_list_simple('common')
|
24
24
|
# dir
|
25
25
|
simple[:dir].each { |dir| safe_mkdir(dir) }
|
26
26
|
# file
|
@@ -28,8 +28,8 @@ module AnsibleTools
|
|
28
28
|
end
|
29
29
|
|
30
30
|
# command ansible-tools init -r <rolename>
|
31
|
-
def self.init_role(name)
|
32
|
-
role = safe_list_simple("#{name}")
|
31
|
+
def self.init_role(name, yml_only)
|
32
|
+
role = yml_only ? safe_list_yml_only("#{name}") : safe_list_simple("#{name}")
|
33
33
|
# dir
|
34
34
|
role[:dir].each { |dir| safe_mkdir(dir) }
|
35
35
|
# file
|
@@ -57,6 +57,26 @@ module AnsibleTools
|
|
57
57
|
return {:dir => dir, :file => file}
|
58
58
|
end
|
59
59
|
|
60
|
+
def self.safe_list_yml_only(role)
|
61
|
+
dir = Array.new
|
62
|
+
dir_role = "roles/#{role}"
|
63
|
+
tasks = "#{dir_role}/tasks"
|
64
|
+
handlers = "#{dir_role}/handlers"
|
65
|
+
templates = "#{dir_role}/templates"
|
66
|
+
vars = "#{dir_role}/vars"
|
67
|
+
files = "#{dir_role}/files"
|
68
|
+
dir = [tasks,handlers,templates,vars,files]
|
69
|
+
|
70
|
+
file = Array.new
|
71
|
+
site = 'site.yml'
|
72
|
+
f_task = "#{tasks}/main.yml"
|
73
|
+
f_handlers = "#{handlers}/main.yml"
|
74
|
+
f_vars = "#{vars}/main.yml"
|
75
|
+
file = [site,f_task,f_handlers, f_vars]
|
76
|
+
return {:dir => dir, :file => file}
|
77
|
+
end
|
78
|
+
|
79
|
+
|
60
80
|
def self.safe_list_complex()
|
61
81
|
dir = Array.new
|
62
82
|
group = 'group_vars'
|
@@ -65,7 +85,7 @@ module AnsibleTools
|
|
65
85
|
file = ["production", "stage", "#{group}/group1", "#{group}/group2", "#{host}/hostname1", "#{host}/hostname2"]
|
66
86
|
return {:dir => dir, :file => file}
|
67
87
|
end
|
68
|
-
|
88
|
+
|
69
89
|
def self.safe_mkdir(dir)
|
70
90
|
unless FileTest.exist?("#{dir}")
|
71
91
|
FileUtils.mkdir_p("#{dir}")
|
@@ -87,7 +107,7 @@ module AnsibleTools
|
|
87
107
|
TermColor.green
|
88
108
|
puts "\t\tcreate\t#{file}"
|
89
109
|
TermColor.reset
|
90
|
-
else
|
110
|
+
else
|
91
111
|
TermColor.red
|
92
112
|
puts "\t\texists\t#{file}"
|
93
113
|
TermColor.reset
|
@@ -126,17 +146,17 @@ module AnsibleTools
|
|
126
146
|
class TermColor
|
127
147
|
class << self
|
128
148
|
# 色を解除
|
129
|
-
def reset ; c 0 ; end
|
130
|
-
|
149
|
+
def reset ; c 0 ; end
|
150
|
+
|
131
151
|
# 各色
|
132
|
-
def red ; c 31; end
|
133
|
-
def green ; c 32; end
|
134
|
-
|
152
|
+
def red ; c 31; end
|
153
|
+
def green ; c 32; end
|
154
|
+
|
135
155
|
# カラーシーケンスの出力
|
136
156
|
def c(num)
|
137
157
|
print "\e[#{num.to_s}m"
|
138
|
-
end
|
139
|
-
end
|
158
|
+
end
|
159
|
+
end
|
140
160
|
end
|
141
161
|
|
142
162
|
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ansible_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -115,6 +115,7 @@ executables:
|
|
115
115
|
extensions: []
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
|
+
- .coveralls.yml
|
118
119
|
- .gitignore
|
119
120
|
- Gemfile
|
120
121
|
- LICENSE.txt
|
@@ -124,6 +125,7 @@ files:
|
|
124
125
|
- bin/ansible-tools
|
125
126
|
- lib/ansible_tools.rb
|
126
127
|
- lib/ansible_tools/version.rb
|
128
|
+
- spec/spec_helper.rb
|
127
129
|
homepage: https://github.com/volanja
|
128
130
|
licenses:
|
129
131
|
- MIT
|
@@ -149,4 +151,5 @@ rubygems_version: 1.8.24
|
|
149
151
|
signing_key:
|
150
152
|
specification_version: 3
|
151
153
|
summary: Ansible Tools e.g. Create directory by BestPractice
|
152
|
-
test_files:
|
154
|
+
test_files:
|
155
|
+
- spec/spec_helper.rb
|