Skip to content

Commit b5baf3a

Browse files
authored
Improve documentation (#206)
* Create CONTRIBUTING.md * Add PR template * Tweak .yamllint * Update README playbook examples
1 parent 36ba93a commit b5baf3a

File tree

5 files changed

+192
-92
lines changed

5 files changed

+192
-92
lines changed

.github/pull_request_template.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### Proposed changes
2+
Describe the use case and detail of the change. If this PR addresses an issue on GitHub, make sure to include a link to that issue here in this description (not in the title of the PR).
3+
4+
### Checklist
5+
Before creating a PR, run through this checklist and mark each as complete.
6+
7+
- [ ] I have read the [CONTRIBUTING](https://github.com/nginxinc/ansible-role-nginx/blob/master/CONTRIBUTING.md) document
8+
- [ ] I have added Molecule tests that prove my fix is effective or that my feature works
9+
- [ ] I have checked that all unit tests pass after adding my changes
10+
- [ ] If required, I have updated necessary documentation (`defaults/main/` and `README.md`)

.yamllint

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ rules:
77
brackets:
88
max-spaces-inside: 1
99
level: error
10-
comments: disable
1110
comments-indentation: disable
1211
line-length: disable
1312
truthy: disable

CONTRIBUTING.md

+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Contributing Guidelines
2+
3+
The following is a set of guidelines for contributing to the NGINX Ansible role. We really appreciate that you are considering contributing!
4+
5+
#### Table Of Contents
6+
7+
[Ask a Question](#ask-a-question)
8+
9+
[Getting Started](#getting-started)
10+
11+
[Contributing](#contributing)
12+
13+
[Code Guidelines](#code-guidelines)
14+
* [Git Guidelines](#git-guidelines)
15+
* [Ansible Guidelines](#ansible-guidelines)
16+
17+
[Code of Conduct](https://github.com/nginxinc/ansible-role-nginx/blob/master/CODE_OF_CONDUCT.md)
18+
19+
## Ask a Question
20+
21+
Please open an Issue on GitHub with the label `question`.
22+
23+
## Getting Started
24+
25+
Follow our [Installation Guide](https://github.com/nginxinc/ansible-role-nginx/blob/master/README.md#Installation) to install Ansible and Molecule and get ready to use the NGINX Ansible role.
26+
27+
### Project Structure
28+
29+
* The NGINX Ansible role is written in `yaml` and supports open source NGINX, NGINX Plus, NGINX Amplify, NGINX Controller, and NGINX Unit.
30+
* The project follows the standard [Ansible role directory structure](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html)
31+
* The main code is found at `tasks/`
32+
* The main variables can be found at `defaults/main/`
33+
* Configuration templates for NGINX can be found at `templates/`
34+
* [Molecule](https://molecule.readthedocs.io/) tests can be found in `molecule/`.
35+
* CI/CD is done via Travis using `.travis.yml` Deployment yaml files, and Helm files are found at `deployments/`
36+
37+
## Contributing
38+
39+
### Report a Bug
40+
41+
To report a bug, open an issue on GitHub with the label `bug` using the available bug report issue template. Please ensure the issue has not already been reported.
42+
43+
### Suggest an Enhancement
44+
45+
To suggest an enhancement, please create an issue on GitHub with the label `enhancement` using the available feature issue template.
46+
47+
### Open a Pull Request
48+
49+
* Fork the repo, create a branch, submit a PR when your changes are tested and ready for review
50+
* Fill in [our pull request template](https://github.com/nginxinc/ansible-role-nginx/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
51+
52+
Note: if you’d like to implement a new feature, please consider creating a feature request issue first to start a discussion about the feature.
53+
54+
## Code Guidelines
55+
56+
### Git Guidelines
57+
58+
* Keep a clean, concise and meaningful git commit history on your branch (within reason), rebasing locally and squashing before submitting a PR
59+
* Follow the guidelines of writing a good commit message as described here <https://chris.beams.io/posts/git-commit/> and summarised in the next few points
60+
* In the subject line, use the present tense ("Add feature" not "Added feature")
61+
* In the subject line, use the imperative mood ("Move cursor to..." not "Moves cursor to...")
62+
* Limit the subject line to 72 characters or less
63+
* Reference issues and pull requests liberally after the subject line
64+
* Add more detailed description in the body of the git message (`git commit -a` to give you more space and time in your text editor to write a good message instead of `git commit -am`)
65+
66+
### Ansible Guidelines
67+
68+
* Run `molecule lint` over your code to automatically resolve a lot of `yaml` and Ansible style issues.
69+
* Run `molecule test --all` on your code to catch any other issues.
70+
* Follow these guides on some good practices for Ansible:
71+
* <https://www.ansible.com/blog/ansible-best-practices-essentials>
72+
* <https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html>

README.md

+37-18
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,29 @@ Requirements
1313

1414
**Ansible**
1515

16-
This role was developed and tested with [maintained](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#release-status) versions of
17-
Ansible. Backwards compatibility is not guaranteed.
16+
This role was developed and tested with [maintained](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#release-status) versions of Ansible. Backwards compatibility is not guaranteed.
17+
18+
Instructions on how to install Ansible can be found in the [Ansible website](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html).
19+
20+
**Molecule**
21+
22+
Molecule is used to test the various functionailities of the role. Instructions on how to install Molecule can be found in the [Molecule website](https://molecule.readthedocs.io/en/stable/installation.html).
23+
24+
Installation
25+
------------
1826

1927
**Ansible Galaxy**
2028

21-
Use `ansible-galaxy install nginxinc.nginx` to install the role on your system.
29+
Use `ansible-galaxy install nginxinc.nginx` to install the latest stable release of the role on your system.
30+
31+
**Git**
2232

23-
It supports all platforms supported by [NGINX Open Source](https://nginx.org/en/linux_packages.html#mainline) and [NGINX Plus](https://www.nginx.com/products/technical-specs/):
33+
Use `git clone https://github.com/nginxinc/ansible-role-nginx.git` to pull the latest edge commit of the role from GitHub.
34+
35+
Platforms
36+
---------
37+
38+
The NGINX Ansible role supports all platforms supported by [NGINX Open Source](https://nginx.org/en/linux_packages.html#mainline), [NGINX Plus](https://www.nginx.com/products/technical-specs/), the [NGINX Amplify agent](https://github.com/nginxinc/nginx-amplify-doc/blob/master/amplify-faq.md#21-what-operating-systems-are-supported), the [NGINX Controller agent](https://docs.nginx.com/nginx-controller/technical-specs/#nginx-controller-agent-technical-specifications), and [NGINX Unit](https://unit.nginx.org/installation/#official-packages):
2439

2540
**NGINX Open Source**
2641

@@ -120,7 +135,6 @@ Debian:
120135
- stretch
121136
Ubuntu:
122137
versions:
123-
- trusty
124138
- xenial
125139
- bionic
126140
RedHat:
@@ -245,18 +259,23 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
245259
template_file: http/default.conf.j2
246260
conf_file_name: default.conf
247261
conf_file_location: /etc/nginx/conf.d/
248-
port: 80
249-
server_name: localhost
250-
error_page: /usr/share/nginx/html
251-
autoindex: false
252-
web_server:
253-
locations:
254-
default:
255-
location: /
256-
html_file_location: /usr/share/nginx/html
257-
html_file_name: index.html
258-
autoindex: false
259-
http_demo_conf: false
262+
servers:
263+
server1:
264+
listen:
265+
listen_localhost:
266+
# ip: 0.0.0.0
267+
port: 80
268+
server_name: localhost
269+
error_page: /usr/share/nginx/html
270+
autoindex: false
271+
web_server:
272+
locations:
273+
default:
274+
location: /
275+
html_file_location: /usr/share/nginx/html
276+
html_file_name: index.html
277+
autoindex: false
278+
http_demo_conf: false
260279
```
261280

262281
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost and installing the open source version of NGINX as a reverse proxy.
@@ -278,7 +297,7 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
278297
server1:
279298
listen:
280299
listen_localhost:
281-
#ip: 0.0.0.0
300+
# ip: 0.0.0.0
282301
port: 80
283302
opts:
284303
- default_server

0 commit comments

Comments
 (0)