ansible-role 1.0.0 → 1.0.1
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 +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
|
[](https://github.com/weareinteractive/gem-ansible-role)
|
5
5
|
[](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
|
[](https://github.com/weareinteractive/ansible-my-role)
|
103
100
|
[](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:
|