Ansible/Galaxy: Difference between revisions
From charlesreid1
No edit summary |
|||
| Line 11: | Line 11: | ||
Let's look at the nginx example here: https://galaxy.ansible.com/geerlingguy/nginx | Let's look at the nginx example here: https://galaxy.ansible.com/geerlingguy/nginx | ||
The user sets default values for variables using the default YAML file <code>defaults/main.yml</code> | |||
===default variable values=== | ===default variable values=== | ||
| Line 74: | Line 70: | ||
template: "{{ playbook_dir }}/templates/site2.example.com.vhost.j2" | template: "{{ playbook_dir }}/templates/site2.example.com.vhost.j2" | ||
</pre> | </pre> | ||
=Example Playbook= | =Example Playbook= | ||
Latest revision as of 01:34, 15 November 2018
Ansible Galaxy is a web community for exchanging Ansible resources.
Link: https://galaxy.ansible.com
Guide: https://galaxy.ansible.com/docs/finding/search.html
Examples
Nginx example
Let's look at the nginx example here: https://galaxy.ansible.com/geerlingguy/nginx
The user sets default values for variables using the default YAML file defaults/main.yml
default variable values
The default variable values are set in defaults/main.yml.
The variables to be set by the user include:
- User provides virtual hosts (sites available) either through the YAML file (if short and easy), or by hand (if virtual hosts list is empty)
- Upstreams (if using nginx as a loadbalancer)
- nginx user to use
- worker processes, worker connections, multi accept
- Error/access logs
- Timeout times
- Etc etc etc.
Some ways of customizing the nginx file from this YAML file:
- nginx_extra_http_options - Extra lines to be inserted in the top-level http block in nginx.conf
- nginx_extra_conf_options - Extra lines to be inserted in the top of nginx.conf
To override the names of the template files used, add the following to the default variables file:
nginx_conf_template: "nginx.conf.j2" nginx_vhost_template: "vhost.j2"
templates
The nginx config file (which uses the variables set in the defaults YAML file above) lives in the templates folder, in templates/nginx.conf.j2.
To override the names of the template files used, add the following to the default variables file:
nginx_conf_template: "nginx.conf.j2" nginx_vhost_template: "vhost.j2"
To set it per virtual host, do something like this:
nginx_vhosts:
- listen: "80 default_server"
server_name: "site1.example.com"
root: "/var/www/site1.example.com"
index: "index.php index.html index.htm"
template: "{{ playbook_dir }}/templates/site1.example.com.vhost.j2"
- server_name: "site2.example.com"
root: "/var/www/site2.example.com"
index: "index.php index.html index.htm"
template: "{{ playbook_dir }}/templates/site2.example.com.vhost.j2"
Example Playbook
- hosts: server
roles:
- { role: geerlingguy.nginx }
Flags