mirror of
https://github.com/idealista/cookiecutter-ansible-role.git
synced 2026-03-01 02:19:57 +01:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
519a783810 | ||
|
|
5fc3bcaa2e | ||
|
|
dacd85ef41 | ||
|
|
7e8ec829c9 | ||
|
|
cc0eb0ce7c | ||
|
|
08003a20e3 | ||
|
|
2838871c2b | ||
|
|
498bb69af5 | ||
|
|
9e12212122 | ||
|
|
bf38884dcd | ||
|
|
2372221f93 | ||
|
|
a082c79f12 | ||
|
|
921231864f | ||
|
|
c7be6405e8 | ||
|
|
53acbaa7d7 | ||
|
|
055c1ed1a8 | ||
|
|
092a44d4d2 | ||
|
|
e216704e9f | ||
|
|
1b9b8e81a2 | ||
|
|
8b089d7fdc | ||
|
|
bd4c9ee55d | ||
|
|
bfb05f9f7e | ||
|
|
2a4c935222 | ||
|
|
fc1c881864 | ||
|
|
29fef2078c | ||
|
|
3cb19fc4d9 | ||
|
|
a3fb7e6a37 | ||
|
|
602f6e5953 | ||
|
|
34f4edf4c9 | ||
|
|
0b139944f6 | ||
|
|
41f5790f9a | ||
|
|
8735563651 | ||
|
|
f2e385868d | ||
|
|
52fc713404 | ||
|
|
747c7f30de | ||
|
|
e5782c903a | ||
|
|
3ea1b47038 | ||
|
|
cceaac7b86 | ||
|
|
21de58a20b | ||
|
|
376996d273 | ||
|
|
dfedd31efb | ||
|
|
0a9343b545 | ||
|
|
035f88cd21 | ||
|
|
8e687b3d68 | ||
|
|
a2b0a538b2 |
30
CHANGELOG.md
30
CHANGELOG.md
@@ -3,11 +3,39 @@ All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](http://semver.org/) and [Keep a changelog](https://github.com/olivierlacan/keep-a-changelog).
|
||||
|
||||
## Unreleased
|
||||
### Fixed
|
||||
### Added
|
||||
### Changed
|
||||
### Fixed
|
||||
### Removed
|
||||
|
||||
## [2.5.1](https://github.com/idealista/cookiecutter-ansible-role/tree/2.5.1)
|
||||
### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.5.0...2.5.1)
|
||||
### Changed
|
||||
- *[#63](https://github.com/idealista/cookiecutter-ansible-role/issues/63) Ignore html in gitattributes file* @blalop
|
||||
### Fixed
|
||||
- *[#62](https://github.com/idealista/cookiecutter-ansible-role/issues/62) molecule verify fails and breaks the run when at least one test fail* @ultraheroe
|
||||
- *[#60](https://github.com/idealista/cookiecutter-ansible-role/issues/60) [BUG] Wrong state option in "Ensure skeleton log paths" task* @emepege
|
||||
|
||||
## [2.5.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.5.0)
|
||||
### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.4.1...2.5.0)
|
||||
### Added
|
||||
- *[#57](https://github.com/idealista/cookiecutter-ansible-role/issues/57) Added gitattributes file* @blalop
|
||||
### Changed
|
||||
- *[#55](https://github.com/idealista/cookiecutter-ansible-role/issues/55) Excluded non-role files from linting* @blalop
|
||||
|
||||
## [2.4.1](https://github.com/idealista/cookiecutter-ansible-role/tree/2.4.1)
|
||||
### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.4.0...2.4.1)
|
||||
### Fixed
|
||||
- *[#50](https://github.com/idealista/cookiecutter-ansible-role/issues/50) Tags not applied properly from playbook* @vicsufer
|
||||
|
||||
## [2.4.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.4.0)
|
||||
### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.3.0...2.4.0)
|
||||
### Added
|
||||
- *[#45](https://github.com/idealista/cookiecutter-ansible-role/issues/45) Documentation link provided on role generation* @xtianae7
|
||||
### Changed
|
||||
- *[#47](https://github.com/idealista/cookiecutter-ansible-role/pull/47) Bump goss version from 0.3.14 to 0.3.16* @vicsufer
|
||||
- *[#46](https://github.com/idealista/cookiecutter-ansible-role/issues/46) Static tests instead of parameters* @xtianae7
|
||||
|
||||
## [2.3.0](https://github.com/idealista/cookiecutter-ansible-role/tree/2.3.0)
|
||||
### [Full Changelog](https://github.com/idealista/cookiecutter-ansible-role/compare/2.2.0...2.3.0)
|
||||
### Fixed
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Cookiecutter Ansible Role
|
||||

|
||||
|
||||
[](https://travis-ci.org/idealista/cookiecutter-ansible-role)
|
||||
[](https://travis-ci.com/idealista/cookiecutter-ansible-role)
|
||||
|
||||
|
||||
|
||||
@@ -79,6 +79,7 @@ Select has_templates:
|
||||
1 - True
|
||||
2 - False
|
||||
Choose from 1, 2 [1]:
|
||||
documentation_URL: https://cli.github.com/manual/
|
||||
```
|
||||
|
||||
It will create the following file structure:
|
||||
|
||||
@@ -21,5 +21,6 @@
|
||||
"has_files":["True", "False"],
|
||||
"comment_2":"If there is service the following options will not have any effect",
|
||||
"has_handlers":["True", "False"],
|
||||
"has_templates":["True", "False"]
|
||||
"has_templates":["True", "False"],
|
||||
"documentation_URL":""
|
||||
}
|
||||
|
||||
2
test.sh
2
test.sh
@@ -3,7 +3,7 @@
|
||||
set -e
|
||||
|
||||
# Generate role
|
||||
printf "cookiecutter==1.7.2\nJinja2==2.11.2" > requirements.txt && pipenv install -r requirements.txt && pipenv run cookiecutter . --no-input app_name="github_cli" exec_name="gh" author="John Doe" min_ansible_version="2.2" ansible_version="2.8.6" molecule_version="3.0.1" python_docker_version="4.1.0" ansible_lint_version="4.2.0" has_service="False" has_files="False" has_handlers="False" has_templates="False" && rm Pipfile* requirements.txt
|
||||
printf "cookiecutter==1.7.2\nJinja2==2.11.2" > requirements.txt && pipenv install -r requirements.txt && pipenv run cookiecutter . --no-input app_name="github_cli" exec_name="gh" author="John Doe" min_ansible_version="2.2" ansible_version="2.8.6" molecule_version="3.0.1" python_docker_version="4.1.0" ansible_lint_version="4.2.0" has_service="False" has_files="False" has_handlers="False" has_templates="False" documentation_URL="https://cli.github.com/manual/" && rm Pipfile* requirements.txt
|
||||
(
|
||||
# Adjust the role to test
|
||||
cd github_cli_role
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
exclude_paths:
|
||||
- ./molecule
|
||||
- ./.travis.yml
|
||||
- ./.github
|
||||
parseable: true
|
||||
skip_list:
|
||||
- '204'
|
||||
|
||||
@@ -4,6 +4,8 @@ extends: default
|
||||
|
||||
ignore: |
|
||||
molecule/**/tests/
|
||||
.github
|
||||
.travis.yml
|
||||
|
||||
rules:
|
||||
braces:
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
|
||||
This ansible role installs [{{ cookiecutter.app_name | replace('_',' ') | title }}](APP_URL_HERE) in a Debian environment. It has been tested for the following Debian versions:
|
||||
This ansible role installs {% if cookiecutter.documentation_URL != "" %}[{% endif %}{{ cookiecutter.app_name | replace('_',' ') | title }}{% if cookiecutter.documentation_URL != "" %}]({{ cookiecutter.documentation_URL }}){% endif %} in a Debian environment. It has been tested for the following Debian versions:
|
||||
{% if cookiecutter.debian_stretch_support == 'True' %}* Stretch{% endif %}
|
||||
{% if cookiecutter.debian_buster_support == 'True' %}* Buster{% endif %}
|
||||
|
||||
@@ -84,7 +84,7 @@ $ pipenv run molecule test
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Versioning
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
{% if cookiecutter.has_service == 'True' %}
|
||||
## Service options
|
||||
# Documentation
|
||||
{{ cookiecutter.app_name }}_documentation_link: https://www.example.documentation.com
|
||||
{{ cookiecutter.app_name }}_documentation_link: "{{ cookiecutter.documentation_URL }}"
|
||||
|
||||
# Owner
|
||||
{{ cookiecutter.app_name }}_user: exampleuser
|
||||
|
||||
@@ -1,36 +1,46 @@
|
||||
---
|
||||
|
||||
file:
|
||||
{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_bin_path {% raw %}}}{% endraw %}:
|
||||
{% if cookiecutter.has_service == 'True' %}
|
||||
owner: {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_user {% raw %}}}{% endraw %}
|
||||
group: {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}
|
||||
{% endif %}
|
||||
exists: true
|
||||
filetype: directory
|
||||
## TODO: Remember to adapt goss tests to your convenience
|
||||
{% if cookiecutter.has_service == 'True' %}
|
||||
# port:
|
||||
# # Check port at IPv6
|
||||
# # https://github.com/aelsabbahy/goss/issues/177
|
||||
# tcp6:{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_port {% raw %}}}{% endraw %}:
|
||||
# listening: true
|
||||
# ip:
|
||||
# - '::'
|
||||
|
||||
service:
|
||||
{{ cookiecutter.app_name }}:
|
||||
enabled: true
|
||||
running: true
|
||||
process:
|
||||
{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_exec_name {% raw %}}}{% endraw %}:
|
||||
running: true
|
||||
|
||||
process:
|
||||
{{ cookiecutter.exec_name }}:
|
||||
running: true
|
||||
|
||||
user:
|
||||
{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_user {% raw %}}}{% endraw %}:
|
||||
exists: true
|
||||
groups:
|
||||
- {% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}
|
||||
shell: /usr/sbin/nologin
|
||||
exampleuser:
|
||||
exists: true
|
||||
groups:
|
||||
- examplegroup
|
||||
shell: /usr/sbin/nologin
|
||||
group:
|
||||
{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}:
|
||||
examplegroup:
|
||||
exists: true
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
file:
|
||||
/opt/{{ cookiecutter.app_name }}:
|
||||
{% if cookiecutter.has_service == 'True' %}
|
||||
owner: exampleuser
|
||||
group: examplegroup
|
||||
{% endif %}
|
||||
exists: true
|
||||
filetype: directory
|
||||
/opt/{{ cookiecutter.app_name }}/bin:
|
||||
{% if cookiecutter.has_service == 'True' %}
|
||||
owner: exampleuser
|
||||
group: examplegroup
|
||||
{% endif %}
|
||||
exists: true
|
||||
filetype: directory
|
||||
|
||||
## Check if ports are really exposed
|
||||
# port:
|
||||
# # Check port at IPv6
|
||||
# # https://github.com/aelsabbahy/goss/issues/177
|
||||
# tcp6:<port>:
|
||||
# listening: true
|
||||
# ip:
|
||||
# - '::'
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
- {{ cookiecutter.app_name }}
|
||||
become: true
|
||||
vars:
|
||||
goss_version: v0.3.14
|
||||
goss_version: v0.3.16
|
||||
goss_arch: amd64
|
||||
goss_dst: /usr/local/bin/goss
|
||||
goss_sha256sum: 26c481073d346028451d56af600a71ec2d6c7bc960c3e207f610e32c5e1f5144
|
||||
goss_sha256sum: 827e354b48f93bce933f5efcd1f00dc82569c42a179cf2d384b040d8a80bfbfb
|
||||
goss_url: "https://github.com/aelsabbahy/goss/releases/download/{% raw %}{{{% endraw %} goss_version {% raw %}}}{% endraw %}/goss-linux-{% raw %}{{{% endraw %} goss_arch {% raw %}}}{% endraw %}"
|
||||
goss_test_directory: /tmp
|
||||
goss_format: documentation
|
||||
@@ -45,6 +45,7 @@
|
||||
command: "{% raw %}{{{% endraw %} goss_dst {% raw %}}}{% endraw %} -g {% raw %}{{{% endraw %} item {% raw %}}}{% endraw %} validate --format {% raw %}{{{% endraw %} goss_format {% raw %}}}{% endraw %}"
|
||||
register: test_results
|
||||
with_items: "{% raw %}{{{% endraw %} test_files.stdout_lines {% raw %}}}{% endraw %}"
|
||||
ignore_errors: true
|
||||
|
||||
- name: Display details about the Goss results
|
||||
debug:
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
name: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}"
|
||||
system: yes
|
||||
state: present
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Ensure {{ cookiecutter.app_name }} user
|
||||
user:
|
||||
@@ -13,6 +15,8 @@
|
||||
system: yes
|
||||
shell: /usr/sbin/nologin
|
||||
createhome: no
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
{% endif %}
|
||||
- name: {{ cookiecutter.app_name | upper }} | Ensure skeleton paths
|
||||
file:
|
||||
@@ -24,6 +28,8 @@
|
||||
state: directory
|
||||
with_items:
|
||||
- "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_skeleton_paths {% raw %}}}{% endraw %}"
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Ensure skeleton log paths
|
||||
file:
|
||||
@@ -32,20 +38,26 @@
|
||||
owner: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_user {% raw %}}}{% endraw %}"
|
||||
group: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_group {% raw %}}}{% endraw %}"
|
||||
{% endif %}
|
||||
state: file
|
||||
state: directory
|
||||
when: {{ cookiecutter.app_name }}_log_file is defined
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Check {{ cookiecutter.app_name }} version
|
||||
command: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_exec_name {% raw %}}}{% endraw %} --version"
|
||||
register: {{ cookiecutter.app_name }}_check
|
||||
changed_when: false
|
||||
ignore_errors: true
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Download package
|
||||
get_url:
|
||||
url: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_url {% raw %}}}{% endraw %}"
|
||||
dest: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_package_path {% raw %}}}{% endraw %}"
|
||||
when: {{ cookiecutter.app_name }}_force_reinstall or {{ cookiecutter.app_name }}_check is failed or {{ cookiecutter.app_name }}_version not in {{ cookiecutter.app_name }}_check.stderr
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Extract downloaded package
|
||||
unarchive:
|
||||
@@ -53,6 +65,8 @@
|
||||
dest: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_download_path {% raw %}}}{% endraw %}"
|
||||
remote_src: True
|
||||
when: {{ cookiecutter.app_name }}_force_reinstall or {{ cookiecutter.app_name }}_check is failed or {{ cookiecutter.app_name }}_version not in {{ cookiecutter.app_name }}_check.stderr
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Copy binary
|
||||
copy:
|
||||
@@ -65,6 +79,8 @@
|
||||
remote_src: True
|
||||
mode: 0755
|
||||
when: {{ cookiecutter.app_name }}_force_reinstall or {{ cookiecutter.app_name }}_check is failed or {{ cookiecutter.app_name }}_version not in {{ cookiecutter.app_name }}_check.stderr
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Link binary
|
||||
file:
|
||||
@@ -72,3 +88,5 @@
|
||||
dest: "/usr/bin/{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_exec_name {% raw %}}}{% endraw %}"
|
||||
state: link
|
||||
when: {{ cookiecutter.app_name }}_force_reinstall or {{ cookiecutter.app_name }}_check is failed or {{ cookiecutter.app_name }}_version not in {{ cookiecutter.app_name }}_check.stderr
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_install
|
||||
|
||||
@@ -8,10 +8,14 @@
|
||||
owner: root
|
||||
group: root
|
||||
notify: restart {{ cookiecutter.app_name }}
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_service
|
||||
|
||||
- name: {{ cookiecutter.app_name | upper }} | Configuring service
|
||||
systemd:
|
||||
name: {{ cookiecutter.app_name }}
|
||||
state: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_service_state {% raw %}}}{% endraw %}"
|
||||
enabled: "{% raw %}{{{% endraw %} {{ cookiecutter.app_name }}_service_enabled {% raw %}}}{% endraw %}"
|
||||
daemon_reload: yes
|
||||
daemon_reload: yes
|
||||
tags:
|
||||
- {{ cookiecutter.app_name }}_service
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
*.yml linguist-detectable=true
|
||||
*.yaml linguist-detectable=true
|
||||
*.html linguist-detectable=false
|
||||
@@ -13,7 +13,7 @@ env:
|
||||
{% if cookiecutter.debian_stretch_support == 'True' %}- MOLECULE_DISTRO=debian:stretch-slim{% endif %}
|
||||
{% if cookiecutter.debian_buster_support == 'True' %}- MOLECULE_DISTRO=debian:buster-slim{% endif %}
|
||||
script:
|
||||
- pipenv run molecule test
|
||||
- pipenv run molecule test --all
|
||||
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||
|
||||
Reference in New Issue
Block a user