Skip to content

Commit 4568180

Browse files
authored
Merge pull request #13 from f500/ansible-lint
Add ansible lint pr workflow
2 parents 6a63358 + 240335e commit 4568180

File tree

8 files changed

+214
-51
lines changed

8 files changed

+214
-51
lines changed

.ansible-lint

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
---
2+
# .ansible-lint
3+
4+
profile: production # min, basic, moderate,safety, shared, production
5+
6+
# Allows dumping of results in SARIF format
7+
# sarif_file: result.sarif
8+
9+
# exclude_paths included in this file are parsed relative to this file's location
10+
# and not relative to the CWD of execution. CLI arguments passed to the --exclude
11+
# option are parsed relative to the CWD of execution.
12+
exclude_paths:
13+
- .github/
14+
- .ansible-lint
15+
# parseable: true
16+
# quiet: true
17+
# strict: true
18+
# verbosity: 1
19+
20+
# Mock modules or roles in order to pass ansible-playbook --syntax-check
21+
#mock_modules:
22+
# - zuul_return
23+
# note the foo.bar is invalid as being neither a module or a collection
24+
# - fake_namespace.fake_collection.fake_module
25+
# - fake_namespace.fake_collection.fake_module.fake_submodule
26+
#mock_roles:
27+
# - mocked_role
28+
# - author.role_name # old standalone galaxy role
29+
# - fake_namespace.fake_collection.fake_role # role within a collection
30+
31+
# Enable checking of loop variable prefixes in roles
32+
loop_var_prefix: "^(__|{role}_)"
33+
34+
# Enforce variable names to follow pattern below, in addition to Ansible own
35+
# requirements, like avoiding python identifiers. To disable add `var-naming`
36+
# to skip_list.
37+
var_naming_pattern: "^[a-z_][a-z0-9_]*$"
38+
39+
use_default_rules: true
40+
# Load custom rules from this specific folder
41+
# rulesdir:
42+
# - ./rule/directory/
43+
44+
# Ansible-lint is able to recognize and load skip rules stored inside
45+
# `.ansible-lint-ignore` (or `.config/ansible-lint-ignore.txt`) files.
46+
# To skip a rule just enter filename and tag, like "playbook.yml package-latest"
47+
# on a new line.
48+
# Optionally you can add comments after the tag, prefixed by "#". We discourage
49+
# the use of skip_list below because that will hide violations from the output.
50+
# When putting ignores inside the ignore file, they are marked as ignored, but
51+
# still visible, making it easier to address later.
52+
skip_list:
53+
- risky-shell-pipe
54+
# - skip_this_tag
55+
56+
# Ansible-lint does not automatically load rules that have the 'opt-in' tag.
57+
# You must enable opt-in rules by listing each rule 'id' below.
58+
enable_list:
59+
- args
60+
- empty-string-compare # opt-in
61+
- no-log-password # opt-in
62+
- no-same-owner # opt-in
63+
- name[prefix] # opt-in
64+
- galaxy-version-incorrect # opt-in
65+
# add yaml here if you want to avoid ignoring yaml checks when yamllint
66+
# library is missing. Normally its absence just skips using that rule.
67+
- yaml
68+
# Report only a subset of tags and fully ignore any others
69+
# tags:
70+
# - jinja[spacing]
71+
72+
# Ansible-lint does not fail on warnings from the rules or tags listed below
73+
#warn_list:
74+
# - skip_this_tag
75+
# - experimental # experimental is included in the implicit list
76+
# - role-name
77+
# - yaml[document-start] # you can also use sub-rule matches
78+
79+
# Some rules can transform files to fix (or make it easier to fix) identified
80+
# errors. `ansible-lint --fix` will reformat YAML files and run these transforms.
81+
# By default it will run all transforms (effectively `write_list: ["all"]`).
82+
# You can disable running transforms by setting `write_list: ["none"]`.
83+
# Or only enable a subset of rule transforms by listing rules/tags here.
84+
# write_list:
85+
# - all
86+
87+
# Offline mode disables installation of requirements.yml and schema refreshing
88+
offline: true
89+
90+
# Define required Ansible's variables to satisfy syntax check
91+
#extra_vars:
92+
# foo: bar
93+
# multiline_string_variable: |
94+
# line1
95+
# line2
96+
# complex_variable: ":{;\t$()"
97+
98+
# Uncomment to enforce action validation with tasks, usually is not
99+
# needed as Ansible syntax check also covers it.
100+
# skip_action_validation: false
101+
102+
# List of additional kind:pattern to be added at the top of the default
103+
# match list, first match determines the file kind.
104+
#kinds:
105+
# - playbook: "**/examples/*.{yml,yaml}"
106+
# - galaxy: "**/folder/galaxy.yml"
107+
# - tasks: "**/tasks/*.yml"
108+
# - vars: "**/vars/*.yml"
109+
# - meta: "**/meta/main.yml"
110+
# - yaml: "**/*.yaml-too"
111+
112+
# List of additional collections to allow in only-builtins rule.
113+
# only_builtins_allow_collections:
114+
# - example_ns.example_collection
115+
116+
# List of additions modules to allow in only-builtins rule.
117+
# only_builtins_allow_modules:
118+
# - example_module
119+
120+
# Allow setting custom prefix for name[prefix] rule
121+
#task_name_prefix: "{stem} | "
122+
# Complexity related settings
123+
124+
# Limit the depth of the nested blocks:
125+
# max_block_depth: 20
126+
127+
# Also recognize these versions of Ansible as supported:
128+
# supported_ansible_also:
129+
# - "2.14"

.github/workflows/pull-request.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: Pull request
3+
4+
on: pull_request
5+
6+
jobs:
7+
ansible-lint:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
- name: Run ansible-lint
12+
uses: ansible/ansible-lint@main

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,22 @@ Example Playbook
155155
roles:
156156
- { role: f500.nginx }
157157

158+
Linting
159+
-------
160+
Github actions will check this role with ansible-lint. To run this locally, you will need to follow the following steps:
161+
162+
```bash
163+
brew install ansible-lint
164+
brew install yamllint
165+
ansible-lint
166+
```
167+
168+
to fix the linting errors, run:
169+
170+
```bash
171+
ansible-lint --fix
172+
```
173+
158174
License
159175
-------
160176

defaults/main.yml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,38 @@ nginx_worker_processes: "{{ ansible_processor_count }}"
77
nginx_pid: "/var/run/nginx.pid"
88
nginx_www_dir: "/var/www"
99

10-
nginx_use_realpath_root: no
11-
nginx_php_force_cgi_redirect: no
12-
nginx_set_default_server: yes
10+
nginx_use_realpath_root: false
11+
nginx_php_force_cgi_redirect: false
12+
nginx_set_default_server: true
1313

1414
nginx_dhparam_bits: 4096
1515

1616
nginx_http_params_default:
1717
server_names_hash_bucket_size: 64
18-
server_tokens: off
18+
server_tokens: false
1919

20-
sendfile: on
21-
tcp_nopush: on
22-
tcp_nodelay: on
20+
sendfile: true
21+
tcp_nopush: true
22+
tcp_nodelay: true
2323

24-
gzip: on
24+
gzip: true
2525
gzip_disable: "msie6"
2626
gzip_min_length: 256
27-
gzip_types: application/json application/vnd.ms-fontobject application/x-font-ttf application/x-javascript application/xml application/xml+rss font/opentype image/svg+xml image/x-icon text/css text/javascript text/plain text/xml
27+
gzip_types: >
28+
application/json application/vnd.ms-fontobject application/x-font-ttf
29+
application/x-javascript application/xml application/xml+rss font/opentype image/svg+xml
30+
image/x-icon text/css text/javascript text/plain text/xml
2831
2932
ssl_ciphers: "HIGH:!aNULL:!MD5"
3033
ssl_dhparam: "/etc/nginx/dh{{ nginx_dhparam_bits }}.pem"
31-
ssl_prefer_server_ciphers: on
34+
ssl_prefer_server_ciphers: true
3235
ssl_protocols: TLSv1.2 TLSv1.3
3336
ssl_session_cache: shared:SSL:50m
34-
ssl_session_tickets: off
37+
ssl_session_tickets: false
3538
ssl_session_timeout: 1d
36-
ssl_stapling: on
37-
ssl_stapling_verify: on
38-
resolver: "{{ ansible_dns.nameservers|join(' ') }} valid=300s"
39+
ssl_stapling: true
40+
ssl_stapling_verify: true
41+
resolver: "{{ ansible_dns.nameservers | join(' ') }} valid=300s"
3942

4043
nginx_http_headers_default:
4144
Content-Security-Policy: "default-src 'self'; form-action 'self'; frame-ancestors 'none'"
@@ -47,5 +50,4 @@ nginx_http_headers_default:
4750

4851
nginx_http_params: {}
4952
nginx_http_headers: {}
50-
5153
nginx_server_templates: []

handlers/main.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
2-
32
- name: Restart nginx
4-
service:
3+
ansible.builtin.service:
54
name: nginx
65
state: restarted

meta/main.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@
22
galaxy_info:
33
author: "Jasper N. Brouwer, Ramon de la Fuente"
44
role_name: "nginx"
5+
namespace: "f500"
56
description: Install and start Nginx
67
company: Future500
78
license: LGPL-3.0
89
min_ansible_version: "1.4"
910
platforms:
10-
- name: Debian
11-
versions:
12-
- bullseye
13-
- bookworm
11+
- name: Debian
12+
versions:
13+
- bullseye
14+
- bookworm
1415
galaxy_tags:
1516
- web
1617
dependencies: []

0 commit comments

Comments
 (0)