ansible-role 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []