ansible-role 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 09ecfd7f63ab640cd8a7e7d0ca75f26f85d7e201
4
+ data.tar.gz: 041bf0ab35695d73b57f896685647581743d112a
5
+ SHA512:
6
+ metadata.gz: 88b50f036709043190b75edac9bbf92560131f2b6149308927140241ab709846bf6350a4df6354fee607851de497ffd02d545d8aaf2939a10f41e2d6dfdb4184
7
+ data.tar.gz: b5fb96b6f5fd8b62372f109c885d20ff8da9293262d049a7a2f845eb2db78ed82ad6a5a5e434c12d1d65eae44b302b91921a205fce3bc6a8357a5e5281b6fd2b
data/.editorconfig ADDED
@@ -0,0 +1,16 @@
1
+ # EditorConfig helps developers define and maintain consistent
2
+ # coding styles between different editors and IDEs
3
+ # editorconfig.org
4
+
5
+ root = true
6
+
7
+ [*]
8
+ # Change these settings to your own preference
9
+ indent_size = 2
10
+ indent_style = space
11
+
12
+ # We recommend you to keep these unchanged
13
+ charset = utf-8
14
+ end_of_line = lf
15
+ insert_final_newline = true
16
+ trim_trailing_whitespace = true
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .*
2
+ *~
3
+ /pkg/
4
+ !.empty_directory
5
+ !.editorconfig
6
+ !.travis.yml
7
+ !.git*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in .gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,19 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ansible-role (1.0.0)
5
+ thor
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ rake (10.4.2)
11
+ thor (0.19.1)
12
+
13
+ PLATFORMS
14
+ ruby
15
+
16
+ DEPENDENCIES
17
+ ansible-role!
18
+ bundler
19
+ rake
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) We Are Interactive
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Ansible Role
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/ansible-role.png)](http://badge.fury.io/rb/ansible-role)
4
+
5
+ > Gem with some useful Ansible role command line tools.
6
+ >
7
+ > * Initialize new ansible roles
8
+ > * Re-Generate README.md
9
+
10
+ ## Installation
11
+
12
+ ```
13
+ $ gem install ansible-role
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ```
19
+ $ ansible-role
20
+ Commands:
21
+ ansible-role docgen # Generate README file
22
+ ansible-role help [COMMAND] # Describe available commands or one specific command
23
+ ansible-role init # Initialize new role
24
+ ```
25
+
26
+ ## Contributing
27
+ In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.
28
+
29
+ 1. Fork it
30
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
31
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
32
+ 4. Push to the branch (`git push origin my-new-feature`)
33
+ 5. Create new Pull Request
34
+
35
+ ## License
36
+ Copyright (c) We Are Interactive under the MIT license.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'ansible/role/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ansible-role"
8
+ spec.version = Ansible::Role::VERSION
9
+ spec.authors = ["franklin"]
10
+ spec.email = ["franklin@weareinteractive.com"]
11
+ spec.description = %q{Gem with some useful Ansible role command line tools.}
12
+ spec.summary = %q{Command line snippets.}
13
+ spec.homepage = "https://github.com/franklinkim/gem-ansible-role"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "git"
22
+ spec.add_runtime_dependency "thor"
23
+
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "bundler"
26
+ end
data/bin/ansible-role ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- mode: ruby -*-
3
+
4
+ require 'ansible/role'
5
+ Ansible::Role::Cli.start
@@ -0,0 +1,146 @@
1
+ require "erb"
2
+ require "git"
3
+ require "thor"
4
+ require "yaml"
5
+ require "ostruct"
6
+
7
+ module Ansible
8
+ module Role
9
+ class Cli < Thor
10
+ include Thor::Actions
11
+ source_root ::File.expand_path("#{File.dirname(__FILE__)}/../../../")
12
+
13
+ # -----------------------------------------------------------------------
14
+ # Tasks
15
+ # -----------------------------------------------------------------------
16
+
17
+ desc "init", "Initialize new role"
18
+ def init()
19
+
20
+ @data = {}
21
+
22
+ # check empty directory
23
+ abort "Role directory (#{Dir.getwd}) is not empty!" unless Dir["#{Dir.getwd}/*"].empty?
24
+
25
+ # initializing git repo
26
+ g = Git.init(Dir.getwd)
27
+
28
+ say "To generate your role, please give me some info about:\n\n", :yellow
29
+
30
+ say "• Author", :yellow
31
+ @data[:author] = prompt " Name", "#{g.config('user.name')} <#{g.config('user.email')}>", true
32
+ @data[:company] = prompt " Company", nil, true
33
+ puts ""
34
+
35
+ say "• Role", :yellow
36
+ @data[:name] = prompt " Name", "my-role", true
37
+ @data[:description] = prompt " Description", "Best role ever!", true
38
+ @data[:category] = prompt " Category", "development", true
39
+ @data[:min_ansible_version] = prompt " Min ansible version", "1.9", true
40
+ @data[:var_name] = @data[:name].sub("-", "_")
41
+ puts ""
42
+
43
+ say "• GitHub", :yellow
44
+ @data[:github_user] = prompt " User", g.config('user.name'), true
45
+ @data[:github_name] = prompt " Repository", File.basename(Dir.getwd)
46
+ @data[:github_path] = "#{@data[:github_user]}/#{@data[:github_name]}"
47
+ puts ""
48
+
49
+ say "• Ansible Galaxy", :yellow
50
+ @data[:galaxy_user] = prompt " User", ENV['username']
51
+ puts ""
52
+
53
+ @data[:role_name] = "#{@data[:galaxy_user]}.#{@data[:name]}"
54
+
55
+ # render templates
56
+ directory "templates/ansible/role/init", Dir.getwd
57
+
58
+ # generate docs
59
+ docgen
60
+
61
+ # add and commit files
62
+ g.add()
63
+ g.commit('initial commit')
64
+ end
65
+
66
+ desc "docgen", "Generate README file"
67
+ def docgen
68
+ @data = {}
69
+
70
+ @data[:defaults] = get_yaml("defaults")
71
+ @data[:meta] = get_yaml("meta")
72
+ @data[:tests] = get_yaml("tests")
73
+ @data[:vars] = get_yaml("vars")
74
+
75
+ @data[:files] = {}
76
+ @data[:files][:defaults] = get_yaml_files("defaults")
77
+ @data[:files][:tests] = get_yaml_files("tests")
78
+ @data[:files][:vars] = get_yaml_files("vars")
79
+
80
+ # render template
81
+ template "templates/ansible/role/docgen/README.md.tt", "README.md"
82
+ end
83
+
84
+ no_tasks do
85
+
86
+ # ---------------------------------------------------------------------
87
+ # Public methods
88
+ # ---------------------------------------------------------------------
89
+
90
+ def dot()
91
+ "."
92
+ end
93
+
94
+ def name
95
+ @data[:name]
96
+ end
97
+
98
+ # ---------------------------------------------------------------------
99
+ # Private methods
100
+ # ---------------------------------------------------------------------
101
+
102
+ private
103
+
104
+ def abort(msg)
105
+ say msg, :red
106
+ exit(1)
107
+ end
108
+
109
+ def prompt(msg, default = nil, required = false)
110
+ loop do
111
+ msg += " [#{default}]" if default != nil
112
+ print "#{msg}: "
113
+ ret = $stdin.gets.chomp
114
+ if ret != ""
115
+ return ret
116
+ elsif ret == "" && default != nil
117
+ return default
118
+ elsif ret == "" && !required
119
+ return ret
120
+ end
121
+ end
122
+ end
123
+
124
+ def get_yaml(path)
125
+ data = {}
126
+ Dir["#{Dir.getwd}/#{path}/*.yml"].each do |file_name|
127
+ basename = File.basename(file_name, '.yml')
128
+ data.store(:"#{basename}", YAML::load_file(file_name))
129
+ end
130
+ data
131
+ end
132
+
133
+ def get_yaml_files(path)
134
+ data = {}
135
+ Dir["#{Dir.getwd}/#{path}/*.yml"].each do |file_name|
136
+ basename = File.basename(file_name, '.yml')
137
+ file = File.open(file_name, "rb")
138
+ data.store(:"#{basename}", file.read)
139
+ end
140
+ data
141
+ end
142
+
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,5 @@
1
+ module Ansible
2
+ module Role
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require "ansible/role/cli"
2
+ require "ansible/role/version"
@@ -0,0 +1,72 @@
1
+ # Ansible <%= @data[:meta][:readme]["galaxy_name"] %> role
2
+
3
+ <%= @data[:meta][:readme]["badges"] %>
4
+ > `<%= @data[:meta][:readme]["galaxy_name"] %>` is an [ansible](http://www.ansible.com) role which:
5
+ >
6
+ <%= @data[:meta][:readme]["description"] %>
7
+ ## Installation
8
+
9
+ Using `ansible-galaxy`:
10
+
11
+ ```
12
+ $ ansible-galaxy install <%= @data[:meta][:readme]["galaxy_name"] %>
13
+ ```
14
+
15
+ Using `requirements.yml`:
16
+
17
+ ```
18
+ - src: <%= @data[:meta][:readme]["galaxy_name"] %>
19
+ ```
20
+
21
+ Using `git`:
22
+
23
+ ```
24
+ $ git clone https://github.com/<%= @data[:meta][:readme]["github_user"] %>/<%= @data[:meta][:readme]["github_name"] %> <%= @data[:meta][:readme]["galaxy_name"] %>
25
+ ```
26
+
27
+ ## Dependencies
28
+
29
+ * Ansible >= <%= @data[:meta][:main]["galaxy_info"]["min_ansible_version"] %>
30
+ <% @data[:meta][:main]["dependencies"].each do |dep| %><%= "* #{dep}\n" %><% end %>
31
+ ## Variables
32
+
33
+ Here is a list of all the default variables for this role, which are also available in `defaults/main.yml`.
34
+
35
+ ```
36
+ <%= @data[:files][:defaults][:main] %>
37
+ ```
38
+
39
+ ## Usage
40
+
41
+ This is an example playbook:
42
+
43
+ ```
44
+ <%= @data[:files][:tests][:main] %>
45
+ ```
46
+
47
+ ## Testing
48
+
49
+ ```
50
+ $ git clone https://github.com/<%= @data[:meta][:readme]["github_user"] %>/<%= @data[:meta][:readme]["github_name"] %>.git
51
+ $ cd <%= @data[:meta][:readme]["github_name"] %>
52
+ $ vagrant up
53
+ ```
54
+
55
+ ## Contributing
56
+ In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests and examples for any new or changed functionality.
57
+
58
+ 1. Fork it
59
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
60
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
61
+ 4. Push to the branch (`git push origin my-new-feature`)
62
+ 5. Create new Pull Request
63
+
64
+ To update the `README.md` file please install and run `ansible-role`:
65
+
66
+ ```
67
+ $ gem install ansible-role
68
+ $ ansible-role docgen
69
+ ```
70
+
71
+ ## License
72
+ Copyright (c) <%= @data[:meta][:main]["galaxy_info"]["company"] %> under the MIT license.
@@ -0,0 +1,16 @@
1
+ # EditorConfig helps developers define and maintain consistent
2
+ # coding styles between different editors and IDEs
3
+ # editorconfig.org
4
+
5
+ root = true
6
+
7
+ [*]
8
+ # Change these settings to your own preference
9
+ indent_size = 2
10
+ indent_style = space
11
+
12
+ # We recommend you to keep these unchanged
13
+ charset = utf-8
14
+ end_of_line = lf
15
+ insert_final_newline = true
16
+ trim_trailing_whitespace = true
@@ -0,0 +1,5 @@
1
+ .*
2
+ *~
3
+ !.editorconfig
4
+ !.travis.yml
5
+ !.git*
@@ -0,0 +1,10 @@
1
+ ---
2
+
3
+ language: ruby
4
+ sudo: required
5
+ services:
6
+ - docker
7
+ install:
8
+ - docker pull franklinkim/ansible:ubuntu-trusty
9
+ script:
10
+ - docker run -v $(pwd):/opt/ansible franklinkim/ansible:ubuntu-trusty tests/run.sh
@@ -0,0 +1,22 @@
1
+ Copyright (c) <%= @data[:company] %>
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ Vagrant.configure("2") do |config|
5
+ config.vbguest.no_remote = true
6
+ config.vbguest.auto_update = false
7
+
8
+ config.vm.define 'trusty' do |instance|
9
+ instance.vm.box = 'ubuntu/trusty64'
10
+ end
11
+
12
+ config.vm.define 'precise' do |instance|
13
+ instance.vm.box = 'ubuntu/precise64'
14
+ end
15
+
16
+ # View the documentation for the provider you're using for more
17
+ # information on available options.
18
+ config.vm.provision "ansible" do |ansible|
19
+ ansible.playbook = "tests/main.yml"
20
+ ansible.verbose = 'vv'
21
+ ansible.sudo = true
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ ---
2
+
3
+ # package name (version)
4
+ <%= @data[:var_name] %>_package: <%= @data[:name] %>
5
+ # service name
6
+ <%= @data[:var_name] %>_service_name: <%= @data[:name] %>
7
+ # start on boot
8
+ <%= @data[:var_name] %>_service_enabled: yes
9
+ # current state: started, stopped
10
+ <%= @data[:var_name] %>_service_state: started
@@ -0,0 +1,7 @@
1
+ ---
2
+
3
+ - name: restart <%= @data[:name] %>
4
+ service:
5
+ name: "{{ <%= @data[:var_name] %>_service_name }}"
6
+ state: restarted
7
+ when: <%= @data[:var_name] %>_service_state != 'stopped'
@@ -0,0 +1,111 @@
1
+ ---
2
+
3
+ galaxy_info:
4
+ author: <%= @data[:author] %>
5
+ company: <%= @data[:company] %>
6
+ description: <%= @data[:description] %>
7
+ min_ansible_version: <%= @data[:min_ansible_version] %>
8
+ license: MIT
9
+ #
10
+ # Below are all platforms currently available. Just uncomment
11
+ # the ones that apply to your role. If you don't see your
12
+ # platform on this list, let us know and we'll get it added!
13
+ #
14
+ platforms:
15
+ # - name: EL
16
+ # versions:
17
+ # - all
18
+ # - 5
19
+ # - 6
20
+ # - name: GenericUNIX
21
+ # versions:
22
+ # - all
23
+ # - any
24
+ # - name: Fedora
25
+ # versions:
26
+ # - all
27
+ # - 16
28
+ # - 17
29
+ # - 18
30
+ # - 19
31
+ # - 20
32
+ # - name: opensuse
33
+ # versions:
34
+ # - all
35
+ # - 12.1
36
+ # - 12.2
37
+ # - 12.3
38
+ # - 13.1
39
+ # - 13.2
40
+ # - name: GenericBSD
41
+ # versions:
42
+ # - all
43
+ # - any
44
+ # - name: FreeBSD
45
+ # versions:
46
+ # - all
47
+ # - 8.0
48
+ # - 8.1
49
+ # - 8.2
50
+ # - 8.3
51
+ # - 8.4
52
+ # - 9.0
53
+ # - 9.1
54
+ # - 9.1
55
+ # - 9.2
56
+ # - name: Ubuntu
57
+ # versions:
58
+ # - all
59
+ # - lucid
60
+ # - maverick
61
+ # - natty
62
+ # - oneiric
63
+ # - precise
64
+ # - quantal
65
+ # - raring
66
+ # - saucy
67
+ # - trusty
68
+ # - name: SLES
69
+ # versions:
70
+ # - all
71
+ # - 10SP3
72
+ # - 10SP4
73
+ # - 11
74
+ # - 11SP1
75
+ # - 11SP2
76
+ # - 11SP3
77
+ # - name: GenericLinux
78
+ # versions:
79
+ # - all
80
+ # - any
81
+ # - name: Debian
82
+ # versions:
83
+ # - all
84
+ # - etch
85
+ # - lenny
86
+ # - squeeze
87
+ # - wheezy
88
+ #
89
+ # Below are all categories currently available. Just as with
90
+ # the platforms above, uncomment those that apply to your role.
91
+ #
92
+ categories:
93
+ # - cloud
94
+ # - cloud:ec2
95
+ # - cloud:gce
96
+ # - cloud:rax
97
+ # - database
98
+ # - database:nosql
99
+ # - database:sql
100
+ # - development
101
+ # - monitoring
102
+ # - networking
103
+ # - packaging
104
+ # - system
105
+ # - web
106
+ dependencies: []
107
+ # List your role dependencies here, one per line. Only
108
+ # dependencies available via galaxy should be listed here.
109
+ # Be sure to remove the '[]' above if you add dependencies
110
+ # to this list.
111
+
@@ -0,0 +1,34 @@
1
+ ---
2
+
3
+ galaxy_name: <%= @data[:role_name] %>
4
+ github_user: <%= @data[:github_user] %>
5
+ github_name: <%= @data[:github_name] %>
6
+ badges: |
7
+ [![Build Status](https://img.shields.io/travis/<%= @data[:github_path] %>.svg)](https://travis-ci.org/<%= @data[:github_path] %>)
8
+ [![Galaxy](http://img.shields.io/badge/galaxy-<%= @data[:role_name] %>-blue.svg)](https://galaxy.ansible.com/list#/roles/<%= @data[:galaxy_id] %>)
9
+ [![GitHub Tags](https://img.shields.io/github/tag/<%= @data[:github_path] %>.svg)](https://github.com/<%= @data[:github_path] %>)
10
+ [![GitHub Stars](https://img.shields.io/github/stars/<%= @data[:github_path] %>.svg)](https://github.com/<%= @data[:github_path] %>)
11
+ description: |
12
+ > * installs <%= @data[:name] %>
13
+ > * configures <%= @data[:name] %>
14
+ > * manages <%= @data[:name] %>
15
+ > * configures service
16
+ installation: |
17
+ Using `ansible-galaxy`:
18
+
19
+ ```
20
+ $ ansible-galaxy install <%= @data[:role_name] %>
21
+ ```
22
+
23
+ Using `requirements.yml`:
24
+
25
+ ```
26
+ - src: <%= @data[:role_name] %>
27
+ ```
28
+
29
+ Using `git`:
30
+
31
+ ```
32
+ $ git clone https://github.com/<%= @data[:github_path] %> <%= @data[:role_name] %>
33
+ ```
34
+
@@ -0,0 +1,12 @@
1
+ ---
2
+
3
+ - name: Configuring <%= @data[:name] %>
4
+ template:
5
+ src: "{{ item }}.j2"
6
+ dest: "/{{ item }}"
7
+ owner: root
8
+ group: root
9
+ mode: "0644"
10
+ notify: restart <%= @data[:name] %>
11
+ with_items:
12
+ - etc/<%= @data[:name] %>.conf
@@ -0,0 +1,4 @@
1
+ ---
2
+
3
+ - name: Installing package
4
+ action: "{{ ansible_pkg_mgr }} pkg={{ <%= @data[:var_name] %>_package }} state=present"
@@ -0,0 +1,30 @@
1
+ ---
2
+
3
+ - include: install.yml
4
+ tags:
5
+ - <%= @data[:category] %>
6
+ - install
7
+ - <%= @data[:name] %>
8
+ - <%= @data[:name] %>-install
9
+
10
+ - include: config.yml
11
+ tags:
12
+ - <%= @data[:category] %>
13
+ - config
14
+ - <%= @data[:name] %>
15
+ - <%= @data[:name] %>-config
16
+
17
+ - include: manage.yml
18
+ tags:
19
+ - <%= @data[:category] %>
20
+ - manage
21
+ - <%= @data[:name] %>
22
+ - <%= @data[:name] %>-manage
23
+
24
+ - include: service.yml
25
+ tags:
26
+ - <%= @data[:category] %>
27
+ - service
28
+ - <%= @data[:name] %>
29
+ - <%= @data[:name] %>-service
30
+
@@ -0,0 +1,7 @@
1
+ ---
2
+
3
+ - name: Configuring service
4
+ service:
5
+ name: "{{ <%= @data[:var_name] %>_service_name }}"
6
+ state: "{{ <%= @data[:var_name] %>_service_state }}"
7
+ enabled: "{{ <%= @data[:var_name] %>_service_enabled }}"
@@ -0,0 +1 @@
1
+ # {{ ansible_managed }}
@@ -0,0 +1,8 @@
1
+ ---
2
+
3
+ - hosts: all
4
+ sudo: yes
5
+ roles:
6
+ - <%= @data[:role_name] %>
7
+ vars:
8
+ foo: bar
@@ -0,0 +1,13 @@
1
+ #!/bin/bash
2
+
3
+ # define variables
4
+ ROLE_NAME=<%= @data[:role_name] %>
5
+
6
+ # install dependencies
7
+ # ansible-galaxy install galaxyuser.role_name
8
+
9
+ # create role symnlink
10
+ ln -s $(pwd) /usr/share/ansible/roles/$ROLE_NAME
11
+
12
+ # run test playbooks
13
+ ansible-playbook -vvvv -i 'localhost,' -c local $(pwd)/tests/main.yml
@@ -0,0 +1 @@
1
+ ---
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ansible-role
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - franklin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: git
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Gem with some useful Ansible role command line tools.
70
+ email:
71
+ - franklin@weareinteractive.com
72
+ executables:
73
+ - ansible-role
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".editorconfig"
78
+ - ".gitignore"
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - LICENSE
82
+ - README.md
83
+ - Rakefile
84
+ - ansible-role.gemspec
85
+ - bin/ansible-role
86
+ - lib/ansible/role.rb
87
+ - lib/ansible/role/cli.rb
88
+ - lib/ansible/role/version.rb
89
+ - templates/ansible/role/docgen/README.md.tt
90
+ - templates/ansible/role/init/.editorconfig
91
+ - templates/ansible/role/init/.gitignore
92
+ - templates/ansible/role/init/.travis.yml
93
+ - templates/ansible/role/init/LICENSE.tt
94
+ - templates/ansible/role/init/Vagrantfile
95
+ - templates/ansible/role/init/defaults/main.yml.tt
96
+ - templates/ansible/role/init/handlers/main.yml.tt
97
+ - templates/ansible/role/init/meta/main.yml.tt
98
+ - templates/ansible/role/init/meta/readme.yml.tt
99
+ - templates/ansible/role/init/tasks/config.yml.tt
100
+ - templates/ansible/role/init/tasks/install.yml.tt
101
+ - templates/ansible/role/init/tasks/main.yml.tt
102
+ - templates/ansible/role/init/tasks/manage.yml.tt
103
+ - templates/ansible/role/init/tasks/service.yml.tt
104
+ - templates/ansible/role/init/templates/etc/%name%.conf.j2
105
+ - templates/ansible/role/init/tests/main.yml.tt
106
+ - templates/ansible/role/init/tests/run.sh.tt
107
+ - templates/ansible/role/init/vars/main.yml
108
+ homepage: https://github.com/franklinkim/gem-ansible-role
109
+ licenses:
110
+ - MIT
111
+ metadata: {}
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ requirements: []
127
+ rubyforge_project:
128
+ rubygems_version: 2.4.8
129
+ signing_key:
130
+ specification_version: 4
131
+ summary: Command line snippets.
132
+ test_files: []