ansible-role 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -25
- data/lib/ansible/role/cli.rb +4 -0
- data/lib/ansible/role/version.rb +1 -1
- data/templates/ansible/role/docgen/README.md.tt +1 -0
- data/templates/ansible/role/init/.travis.yml.tt +6 -29
- data/templates/ansible/role/init/Vagrantfile +1 -1
- data/templates/ansible/role/init/defaults/main.yml.tt +0 -1
- data/templates/ansible/role/init/handlers/main.yml.tt +0 -1
- data/templates/ansible/role/init/meta/main.yml.tt +124 -95
- data/templates/ansible/role/init/meta/readme.yml.tt +7 -3
- data/templates/ansible/role/init/tests/main.yml.tt +0 -1
- data/templates/ansible/role/init/tests/run.sh.tt +20 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be87bffbde98bdedefd9484f1eeab58abbfd7741
|
4
|
+
data.tar.gz: d1473384723811a1ffa6678b9418075129df465d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e4d9cef73c5fb61212aa872ac41f07d113c3ce5de33f8720b5a67094e7a6906d7571e094c36a29d6580c56f726136ff218555f831e9a148d5f53bb6f1b108a4
|
7
|
+
data.tar.gz: 6f44911d8912c80744a8add693afe2137b94dfa0a5e6af6a4095913e763c590521e6e10c3d092259e540b34ee34d7de433197ee2411405f7c56a8333a10c9944
|
data/README.md
CHANGED
@@ -4,11 +4,10 @@
|
|
4
4
|
[![GitHub Tags](https://img.shields.io/github/tag/weareinteractive/gem-ansible-role.svg)](https://github.com/weareinteractive/gem-ansible-role)
|
5
5
|
[![GitHub Stars](https://img.shields.io/github/stars/weareinteractive/gem-ansible-role.svg)](https://github.com/weareinteractive/gem-ansible-role)
|
6
6
|
|
7
|
-
|
8
|
-
> Ansible role command line tool for.
|
7
|
+
> Small commandline tool to help with ansible roles.
|
9
8
|
>
|
10
|
-
> * Initialize
|
11
|
-
> * Re-
|
9
|
+
> * `init`: Initialize new ansible roles
|
10
|
+
> * `docgen`: Re-Generate README.md
|
12
11
|
|
13
12
|
## Installation
|
14
13
|
|
@@ -28,12 +27,12 @@ Commands:
|
|
28
27
|
|
29
28
|
### Init
|
30
29
|
|
31
|
-
|
30
|
+
Initialize a new role including:
|
32
31
|
|
33
32
|
* [`Travis`](https://travis-ci.org): for testing
|
34
|
-
* [`Vagrant`](
|
35
|
-
* [`clog-cli`](https://github.com/clog-tool/clog-cli): for CHANGELOG
|
36
|
-
* [`.editorconfig`](http://editorconfig.org/): for consistent
|
33
|
+
* [`Vagrant`](https://www.vagrantup.com/): for local testing
|
34
|
+
* [`clog-cli`](https://github.com/clog-tool/clog-cli): for generating CHANGELOG
|
35
|
+
* [`.editorconfig`](http://editorconfig.org/): for consistent coding stlye
|
37
36
|
|
38
37
|
```bash
|
39
38
|
$ mkdir my-role
|
@@ -48,13 +47,13 @@ To generate your role, please give me some info about:
|
|
48
47
|
|
49
48
|
• Role
|
50
49
|
Name [my-role]: my-role
|
51
|
-
Description [Best role ever!]: My best role ever
|
52
|
-
Category [development]:
|
50
|
+
Description [Best role ever!]: My best role ever
|
51
|
+
Category [development]: demo
|
53
52
|
Min ansible version [2.0]: 2.0
|
54
53
|
|
55
54
|
• GitHub
|
56
55
|
User/Organization [franklin]: weareinteractive
|
57
|
-
Repository [
|
56
|
+
Repository [my-role]: ansible-my-role
|
58
57
|
|
59
58
|
exist
|
60
59
|
create .clog.toml
|
@@ -65,6 +64,7 @@ To generate your role, please give me some info about:
|
|
65
64
|
create LICENSE
|
66
65
|
create Vagrantfile
|
67
66
|
create defaults/main.yml
|
67
|
+
create files
|
68
68
|
create handlers/main.yml
|
69
69
|
create meta/main.yml
|
70
70
|
create meta/readme.yml
|
@@ -75,21 +75,18 @@ To generate your role, please give me some info about:
|
|
75
75
|
create tasks/service.yml
|
76
76
|
create templates/etc/my-role.conf.j2
|
77
77
|
create tests/main.yml
|
78
|
+
create tests/run.sh
|
78
79
|
create vars/main.yml
|
79
80
|
create README.md
|
80
81
|
```
|
81
82
|
|
82
|
-
|
83
|
-
|
84
|
-
`ansible-role docgen` generates a `README.md` file frrom `meta/readme.yml` and your role files:
|
83
|
+
See [weareinteractive.unison](https://github.com/weareinteractive/ansible-unison) for example.
|
85
84
|
|
86
|
-
|
87
|
-
$ cd my-role
|
88
|
-
$ ansible-role docgen
|
85
|
+
### Docgen
|
89
86
|
|
90
|
-
|
87
|
+
`docgen` reads meta data from `meta/main.yml` and a `meta/readme.yml` as well as code from your role files.
|
91
88
|
|
92
|
-
|
89
|
+
The `meta/readme.yml` might look like:
|
93
90
|
|
94
91
|
```yaml
|
95
92
|
---
|
@@ -102,17 +99,34 @@ badges: |
|
|
102
99
|
[![GitHub Tags](https://img.shields.io/github/tag/weareinteractive/ansible-my-role.svg)](https://github.com/weareinteractive/ansible-my-role)
|
103
100
|
[![GitHub Stars](https://img.shields.io/github/stars/weareinteractive/ansible-my-role.svg)](https://github.com/weareinteractive/ansible-my-role)
|
104
101
|
description: |
|
105
|
-
> * installs
|
106
|
-
> * configures
|
102
|
+
> * installs my-role
|
103
|
+
> * configures my-role
|
107
104
|
after_dependencies: |
|
108
|
-
*
|
109
|
-
*
|
105
|
+
* dependency a
|
106
|
+
* dependency b
|
110
107
|
after_handlers: |
|
111
|
-
##
|
108
|
+
## A new section after the handler section
|
109
|
+
|
110
|
+
Lorem ipsum dolor sit atem ...
|
111
|
+
after_usage: |
|
112
|
+
## A new section after the usage section
|
112
113
|
|
113
|
-
|
114
|
+
Lorem ipsum dolor sit atem ...
|
114
115
|
```
|
115
116
|
|
117
|
+
To re-generate the `README.md` file run:
|
118
|
+
|
119
|
+
```bash
|
120
|
+
$ mkdir my-role
|
121
|
+
$ cd my-role
|
122
|
+
$ ansble-docgen
|
123
|
+
conflict README.md
|
124
|
+
Overwrite /path/to/my-role/README.md? (enter "h" for help) [Ynaqdh] y
|
125
|
+
force README.md
|
126
|
+
```
|
127
|
+
|
128
|
+
See [weareinteractive.unison](https://github.com/weareinteractive/ansible-unison) for example.
|
129
|
+
|
116
130
|
## Contributing
|
117
131
|
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.
|
118
132
|
|
data/lib/ansible/role/cli.rb
CHANGED
@@ -3,6 +3,7 @@ require "git"
|
|
3
3
|
require "thor"
|
4
4
|
require "yaml"
|
5
5
|
require "ostruct"
|
6
|
+
require "fileutils"
|
6
7
|
|
7
8
|
module Ansible
|
8
9
|
module Role
|
@@ -51,6 +52,9 @@ module Ansible
|
|
51
52
|
# render templates
|
52
53
|
directory "templates/ansible/role/init", Dir.getwd
|
53
54
|
|
55
|
+
# set mode
|
56
|
+
FileUtils.chmod("a+x", "tests/run.sh")
|
57
|
+
|
54
58
|
# generate docs
|
55
59
|
docgen
|
56
60
|
|
data/lib/ansible/role/version.rb
CHANGED
@@ -2,38 +2,15 @@
|
|
2
2
|
language: python
|
3
3
|
python: "2.7"
|
4
4
|
|
5
|
-
|
6
|
-
sudo: false
|
5
|
+
sudo: required
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
packages:
|
12
|
-
- python-pip
|
13
|
-
|
14
|
-
install:
|
15
|
-
# Install ansible
|
16
|
-
- pip install ansible
|
17
|
-
|
18
|
-
# Check ansible version
|
19
|
-
- ansible --version
|
20
|
-
|
21
|
-
# Create inventory file
|
22
|
-
- printf 'localhost' > tests/inventory
|
23
|
-
|
24
|
-
# Create ansible.cfg with correct roles_path
|
25
|
-
- printf '[defaults]\nroles_path=../' > ansible.cfg
|
26
|
-
|
27
|
-
# Create role name symlink
|
28
|
-
- ln -s ./ ../<%= @data[:role_name] %>
|
7
|
+
before_install:
|
8
|
+
- docker pull franklinkim/ansible:ubuntu-trusty
|
9
|
+
- docker pull franklinkim/ansible:ubuntu-precise
|
29
10
|
|
30
11
|
script:
|
31
|
-
|
32
|
-
-
|
33
|
-
# TODO run ansible lint
|
34
|
-
# - ansible-lint -L tests/inventory
|
35
|
-
# Run test playbooke
|
36
|
-
- ansible-playbook -i tests/inventory tests/main.yml
|
12
|
+
- docker run -v $(pwd):/opt/ansible franklinkim/ansible:ubuntu-trusty tests/run.sh
|
13
|
+
- docker run -v $(pwd):/opt/ansible franklinkim/ansible:ubuntu-precise tests/run.sh
|
37
14
|
|
38
15
|
notifications:
|
39
16
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
@@ -1,112 +1,141 @@
|
|
1
1
|
---
|
2
|
-
|
3
2
|
galaxy_info:
|
4
3
|
author: <%= @data[:author] %>
|
5
4
|
company: <%= @data[:company] %>
|
6
5
|
description: <%= @data[:description] %>
|
7
6
|
min_ansible_version: <%= @data[:min_ansible_version] %>
|
8
7
|
license: MIT
|
8
|
+
# Optionally specify the branch Galaxy will use when accessing the GitHub
|
9
|
+
# repo for this role. During role install, if no tags are available,
|
10
|
+
# Galaxy will use this branch. During import Galaxy will access files on
|
11
|
+
# this branch. If travis integration is cofigured, only notification for this
|
12
|
+
# branch will be accepted. Otherwise, in all cases, the repo's default branch
|
13
|
+
# (usually master) will be used.
|
14
|
+
github_branch: master
|
9
15
|
#
|
10
16
|
# Below are all platforms currently available. Just uncomment
|
11
17
|
# the ones that apply to your role. If you don't see your
|
12
18
|
# platform on this list, let us know and we'll get it added!
|
13
19
|
#
|
14
20
|
platforms:
|
15
|
-
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
# -
|
21
|
-
|
22
|
-
#
|
23
|
-
#
|
24
|
-
# -
|
25
|
-
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
# -
|
33
|
-
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
# -
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
# -
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
|
66
|
-
#
|
67
|
-
#
|
68
|
-
# -
|
69
|
-
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
# -
|
78
|
-
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
# -
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
|
86
|
-
#
|
87
|
-
#
|
21
|
+
#- name: EL
|
22
|
+
# versions:
|
23
|
+
# - all
|
24
|
+
# - 5
|
25
|
+
# - 6
|
26
|
+
# - 7
|
27
|
+
#- name: GenericUNIX
|
28
|
+
# versions:
|
29
|
+
# - all
|
30
|
+
# - any
|
31
|
+
#- name: Solaris
|
32
|
+
# versions:
|
33
|
+
# - all
|
34
|
+
# - 10
|
35
|
+
# - 11.0
|
36
|
+
# - 11.1
|
37
|
+
# - 11.2
|
38
|
+
# - 11.3
|
39
|
+
#- name: Fedora
|
40
|
+
# versions:
|
41
|
+
# - all
|
42
|
+
# - 16
|
43
|
+
# - 17
|
44
|
+
# - 18
|
45
|
+
# - 19
|
46
|
+
# - 20
|
47
|
+
# - 21
|
48
|
+
# - 22
|
49
|
+
# - 23
|
50
|
+
#- name: Windows
|
51
|
+
# versions:
|
52
|
+
# - all
|
53
|
+
# - 2012R2
|
54
|
+
#- name: SmartOS
|
55
|
+
# versions:
|
56
|
+
# - all
|
57
|
+
# - any
|
58
|
+
#- name: opensuse
|
59
|
+
# versions:
|
60
|
+
# - all
|
61
|
+
# - 12.1
|
62
|
+
# - 12.2
|
63
|
+
# - 12.3
|
64
|
+
# - 13.1
|
65
|
+
# - 13.2
|
66
|
+
#- name: Amazon
|
67
|
+
# versions:
|
68
|
+
# - all
|
69
|
+
# - 2013.03
|
70
|
+
# - 2013.09
|
71
|
+
#- name: GenericBSD
|
72
|
+
# versions:
|
73
|
+
# - all
|
74
|
+
# - any
|
75
|
+
#- name: FreeBSD
|
76
|
+
# versions:
|
77
|
+
# - all
|
78
|
+
# - 10.0
|
79
|
+
# - 10.1
|
80
|
+
# - 10.2
|
81
|
+
# - 8.0
|
82
|
+
# - 8.1
|
83
|
+
# - 8.2
|
84
|
+
# - 8.3
|
85
|
+
# - 8.4
|
86
|
+
# - 9.0
|
87
|
+
# - 9.1
|
88
|
+
# - 9.1
|
89
|
+
# - 9.2
|
90
|
+
# - 9.3
|
91
|
+
#- name: Ubuntu
|
92
|
+
# versions:
|
93
|
+
# - all
|
94
|
+
# - lucid
|
95
|
+
# - maverick
|
96
|
+
# - natty
|
97
|
+
# - oneiric
|
98
|
+
# - precise
|
99
|
+
# - quantal
|
100
|
+
# - raring
|
101
|
+
# - saucy
|
102
|
+
# - trusty
|
103
|
+
# - utopic
|
104
|
+
# - vivid
|
105
|
+
# - wily
|
106
|
+
#- name: SLES
|
107
|
+
# versions:
|
108
|
+
# - all
|
109
|
+
# - 10SP3
|
110
|
+
# - 10SP4
|
111
|
+
# - 11
|
112
|
+
# - 11SP1
|
113
|
+
# - 11SP2
|
114
|
+
# - 11SP3
|
115
|
+
#- name: GenericLinux
|
116
|
+
# versions:
|
117
|
+
# - all
|
118
|
+
# - any
|
119
|
+
#- name: Debian
|
120
|
+
# versions:
|
121
|
+
# - all
|
122
|
+
# - etch
|
123
|
+
# - jessie
|
124
|
+
# - lenny
|
125
|
+
# - squeeze
|
126
|
+
# - wheezy categories:
|
88
127
|
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
128
|
+
# List tags for your role here, one per line. A tag is
|
129
|
+
# a keyword that describes and categorizes the role.
|
130
|
+
# Users find roles by searching for tags. Be sure to
|
131
|
+
# remove the '[]' above if you add tags to this list.
|
93
132
|
#
|
133
|
+
# NOTE: A tag is limited to a single word comprised of
|
134
|
+
# alphanumeric characters. Maximum 20 tags per role.
|
94
135
|
galaxy_tags:
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
# - nosql
|
101
|
-
# - sql
|
102
|
-
# - development
|
103
|
-
# - monitoring
|
104
|
-
# - networking
|
105
|
-
# - packaging
|
106
|
-
# - system
|
107
|
-
# - web
|
136
|
+
- <%= @data[:category] %>
|
137
|
+
# List your role dependencies here, one per line. Only
|
138
|
+
# dependencies available via galaxy should be listed here.
|
139
|
+
# Be sure to remove the '[]' above if you add dependencies
|
140
|
+
# to this list.
|
108
141
|
dependencies: []
|
109
|
-
# List your role dependencies here, one per line. Only
|
110
|
-
# dependencies available via galaxy should be listed here.
|
111
|
-
# Be sure to remove the '[]' above if you add dependencies
|
112
|
-
# to this list.
|
@@ -1,5 +1,4 @@
|
|
1
1
|
---
|
2
|
-
|
3
2
|
galaxy_name: <%= @data[:role_name] %>
|
4
3
|
github_user: <%= @data[:github_user] %>
|
5
4
|
github_name: <%= @data[:github_name] %>
|
@@ -14,8 +13,13 @@ description: |
|
|
14
13
|
> * manages <%= @data[:name] %>
|
15
14
|
> * configures service
|
16
15
|
after_dependencies: |
|
17
|
-
*
|
16
|
+
* dependency a
|
17
|
+
* dependency b
|
18
18
|
after_handlers: |
|
19
|
-
##
|
19
|
+
## A new section after the handler section
|
20
|
+
|
21
|
+
Lorem ipsum dolor sit atem ...
|
22
|
+
after_usage: |
|
23
|
+
## A new section after the usage section
|
20
24
|
|
21
25
|
Lorem ipsum dolor sit atem ...
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# define variables
|
4
|
+
ROLE_NAME=<%= @data[:role_name] %>
|
5
|
+
|
6
|
+
# create role symnlink
|
7
|
+
ln -s $(pwd) /usr/share/ansible/roles/$ROLE_NAME
|
8
|
+
|
9
|
+
# echo 'installing dependencies'
|
10
|
+
# apt-get update
|
11
|
+
# apt-get install -qq ...
|
12
|
+
|
13
|
+
echo 'checking version'
|
14
|
+
ansible --version
|
15
|
+
|
16
|
+
echo 'checking syntax'
|
17
|
+
ansible-playbook -vvvv -i 'localhost,' -c local $(pwd)/tests/main.yml --syntax-check
|
18
|
+
|
19
|
+
echo 'running playbook'
|
20
|
+
ansible-playbook -vvvv -i 'localhost,' -c local $(pwd)/tests/main.yml
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ansible-role
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- franklin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- templates/ansible/role/init/tasks/service.yml.tt
|
110
110
|
- templates/ansible/role/init/templates/etc/%name%.conf.j2
|
111
111
|
- templates/ansible/role/init/tests/main.yml.tt
|
112
|
+
- templates/ansible/role/init/tests/run.sh.tt
|
112
113
|
- templates/ansible/role/init/vars/main.yml
|
113
114
|
homepage: https://github.com/weareinteractive/gem-ansible-role
|
114
115
|
licenses:
|