Add new method to install the NGINX Controller agent (#205)
This commit is contained in:
parent
3b6c744166
commit
f54b7d2f90
15
README.md
15
README.md
@ -379,7 +379,8 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
|
||||
nginx_type: plus
|
||||
```
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost to install NGINX Plus and the NGINX Controller agent.
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost to install NGINX Plus and the NGINX Controller agent. Commented out
|
||||
are sample variables to install the NGINX Controller agent from your NGINX Controller instance instead of the NGINX repository.
|
||||
|
||||
```yaml
|
||||
- hosts: localhost
|
||||
@ -392,8 +393,18 @@ This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a
|
||||
nginx_rest_api_port: 80
|
||||
nginx_rest_api_write: true
|
||||
nginx_controller_enable: true
|
||||
nginx_controller_source: repository
|
||||
nginx_controller_api_key: <API_KEY_HERE>
|
||||
nginx_controller_api_endpoint: https://<FQDN>/1.4
|
||||
nginx_controller_endpoint: <FQDN> # e.g. controller.nginx.com
|
||||
# nginx_type: plus
|
||||
# nginx_rest_api_enable: true
|
||||
# nginx_rest_api_port: 80
|
||||
# nginx_rest_api_write: true
|
||||
# nginx_controller_enable: true
|
||||
# nginx_controller_source: instance
|
||||
# nginx_controller_endpoint: controller.nginx.com
|
||||
# nginx_controller_user_email: john_doe@nginx.com
|
||||
# nginx_controller_password: password
|
||||
```
|
||||
|
||||
This is a sample playbook file for deploying the Ansible Galaxy NGINX role in a localhost to install NGINX Unit and the PHP/Perl NGINX Unit language modules.
|
||||
|
@ -1,8 +1,25 @@
|
||||
---
|
||||
# Install NGINX Controller.
|
||||
# Use your NGINX Controller API key and NGINX Controller API endpoint.
|
||||
# Install NGINX Controller Agent.
|
||||
# Requires NGINX Plus and write access to the NGINX Plus REST API.
|
||||
# Default is null.
|
||||
nginx_controller_enable: false
|
||||
|
||||
# Set the source from where to pull the NGINX Controller Agent.
|
||||
# Options are 'instance', to pull the NGINX Controller Agent install script
|
||||
# from your NGINX Controller instance, or 'repository', to pull the NGINX
|
||||
# Controller Agent from the NGINX repository.
|
||||
# Default is instance.
|
||||
nginx_controller_source: instance
|
||||
|
||||
# Set your NGINX Controller Endpoint. Required for both types of NGINX Controller
|
||||
# installation.
|
||||
nginx_controller_endpoint: null
|
||||
|
||||
# Set your NGINX Controller API key.
|
||||
# Required when 'nginx_controller_source' is set to 'repository'.
|
||||
# Default is null.
|
||||
nginx_controller_api_key: null
|
||||
nginx_controller_api_endpoint: null
|
||||
|
||||
# Set your NGINX Controller Admin Email and Password.
|
||||
# Required when 'nginx_controller_source' is set to 'instance'.
|
||||
nginx_controller_user_email: null
|
||||
nginx_controller_password: null
|
||||
|
@ -1,42 +1,15 @@
|
||||
---
|
||||
- import_tasks: setup-debian.yml
|
||||
when: ansible_os_family == "Debian"
|
||||
- import_tasks: setup-controller-instance.yml
|
||||
when:
|
||||
- nginx_controller_source == "instance"
|
||||
- nginx_controller_user_email is defined
|
||||
- nginx_controller_user_email | length > 0
|
||||
- nginx_controller_password is defined
|
||||
- nginx_controller_password | length > 0
|
||||
|
||||
- import_tasks: setup-redhat.yml
|
||||
when: ansible_os_family == "RedHat"
|
||||
|
||||
- name: "(Install: All OSs) Install NGINX Controller Agent"
|
||||
package:
|
||||
name: nginx-controller-agent
|
||||
state: present
|
||||
|
||||
- name: "(Setup: All OSs) Copy NGINX Controller Agent Configuration Template"
|
||||
copy:
|
||||
remote_src: yes
|
||||
src: /etc/controller-agent/agent.controller.conf.default
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
|
||||
- name: "(Setup: All OSs) Copy NGINX Configurator Agent Configuration Template"
|
||||
copy:
|
||||
remote_src: yes
|
||||
src: /etc/controller-agent/agent.configurator.conf.default
|
||||
dest: /etc/controller-agent/agent.configurator.conf
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API Key"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: api_key =.*
|
||||
line: "api_key = {{ nginx_controller_api_key }}"
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API URL"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: api_url =.*
|
||||
line: "api_url = {{ nginx_controller_api_endpoint }}"
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API Hostname"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: hostname =.*
|
||||
line: "hostname = {{ ansible_hostname }}"
|
||||
notify: "(Handler: All OSs) Start NGINX Controller Agent"
|
||||
- import_tasks: setup-controller-repository.yml
|
||||
when:
|
||||
- nginx_controller_source == "repository"
|
||||
- nginx_controller_api_key is defined
|
||||
- nginx_controller_api_key | length > 0
|
||||
|
28
tasks/controller/setup-controller-instance.yml
Normal file
28
tasks/controller/setup-controller-instance.yml
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
- name: "(Install: All OSs) Fetch NGINX Controller API Key"
|
||||
uri:
|
||||
url: "https://{{ nginx_controller_endpoint }}/sapi/auth/login/"
|
||||
method: "POST"
|
||||
body:
|
||||
email: "{{ nginx_controller_user_email }}"
|
||||
password: "{{ nginx_controller_password }}"
|
||||
body_format: json
|
||||
return_content: yes
|
||||
status_code: 200
|
||||
validate_certs: false
|
||||
register: controller_return
|
||||
|
||||
- name: "(Install: All OSs) Download the NGINX Controller Agent Installer Script"
|
||||
get_url:
|
||||
url: "https://{{ nginx_controller_endpoint }}:8443/1.4/install/controller/"
|
||||
dest: /tmp/install.sh
|
||||
validate_certs: no
|
||||
force: yes
|
||||
|
||||
- name: "(Install: All OSs) Run the NGINX Controller Agent Installer Script"
|
||||
command: "sh ./install.sh -y"
|
||||
args:
|
||||
chdir: /tmp
|
||||
creates: /var/log/nginx-controller/agent.log
|
||||
environment:
|
||||
API_KEY: "{{ controller_return.json.api_key }}"
|
48
tasks/controller/setup-controller-repository.yml
Normal file
48
tasks/controller/setup-controller-repository.yml
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
- name: "(Install: Debian/Ubuntu) Add NGINX Controller Agent Repository"
|
||||
apt_repository:
|
||||
filename: nginx-controller
|
||||
repo: deb https://packages.nginx.org/controller/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release | lower }} controller
|
||||
|
||||
- name: "(Install: CentOS/RedHat) Add NGINX Controller Agent Repository"
|
||||
yum_repository:
|
||||
name: nginx-controller
|
||||
baseurl: https://packages.nginx.org/controller/centos/$releasever/$basearch/
|
||||
description: NGINX Controller Agent
|
||||
gpgcheck: yes
|
||||
|
||||
- name: "(Install: All OSs) Install NGINX Controller Agent"
|
||||
package:
|
||||
name: nginx-controller-agent
|
||||
state: present
|
||||
|
||||
- name: "(Setup: All OSs) Copy NGINX Controller Agent Configuration Template"
|
||||
copy:
|
||||
remote_src: yes
|
||||
src: /etc/controller-agent/agent.controller.conf.default
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
|
||||
- name: "(Setup: All OSs) Copy NGINX Configurator Agent Configuration Template"
|
||||
copy:
|
||||
remote_src: yes
|
||||
src: /etc/controller-agent/agent.configurator.conf.default
|
||||
dest: /etc/controller-agent/agent.configurator.conf
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API Key"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: api_key =.*
|
||||
line: "api_key = {{ nginx_controller_api_key }}"
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API URL"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: api_url =.*
|
||||
line: "api_url = https://{{ nginx_controller_endpoint }}/1.4"
|
||||
|
||||
- name: "(Setup: All OSs) Configure NGINX Controller Agent API Hostname"
|
||||
lineinfile:
|
||||
dest: /etc/controller-agent/agent.conf
|
||||
regexp: hostname =.*
|
||||
line: "hostname = {{ ansible_hostname }}"
|
||||
notify: "(Handler: All OSs) Start NGINX Controller Agent"
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
- name: "(Install: Debian/Ubuntu) Add NGINX Controller Agent Repository"
|
||||
apt_repository:
|
||||
filename: nginx-controller
|
||||
repo: deb http://packages.nginx.org/controller/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release | lower }} controller
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
- name: "(Install: CentOS/RedHat) Add NGINX Controller Agent Repository"
|
||||
yum_repository:
|
||||
name: nginx-controller
|
||||
baseurl: http://packages.nginx.org/controller/centos/$releasever/$basearch/
|
||||
description: NGINX Controller Agent
|
||||
gpgcheck: yes
|
@ -85,10 +85,8 @@
|
||||
- import_tasks: controller/install-controller.yml
|
||||
when:
|
||||
- nginx_controller_enable | bool
|
||||
- nginx_controller_api_key is defined
|
||||
- nginx_controller_api_key | length > 0
|
||||
- nginx_controller_api_endpoint is defined
|
||||
- nginx_controller_api_endpoint | length > 0
|
||||
- nginx_controller_endpoint is defined
|
||||
- nginx_controller_endpoint | length > 0
|
||||
tags: nginx_install_controller
|
||||
|
||||
- import_tasks: unit/install-unit.yml
|
||||
|
Loading…
Reference in New Issue
Block a user