Changing from Ansbile Playbook to Galaxy Role
This commit is contained in:
parent
394b5341b4
commit
391ea1663c
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
files/*.zip
|
51
README.md
51
README.md
|
@ -1,31 +1,48 @@
|
||||||
# unifi-controller-rhel
|
UniFi Controller for RedHat/Centos/etc
|
||||||
|
======================================
|
||||||
|
|
||||||
## About
|
Ansible Galaxy role for installing UniFi Controller software for Ubiquiti Access Points on RHEL 6.
|
||||||
|
|
||||||
Anisble playbook for installing UniFi Controller software for Ubiquiti
|
Forked from https://github.com/fukawi2/unifi-controller-rhel and modified to be an includable role via Galaxy instead of a playbook.
|
||||||
Access Points on RHEL 6
|
|
||||||
|
|
||||||
## Requirements
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
You need the [EPEL Repository](https://fedoraproject.org/wiki/EPEL) from
|
- You need the [EPEL Repository](https://fedoraproject.org/wiki/EPEL) from Fedora Project enabled to be able to install the requirements (MongoDB etc)
|
||||||
Fedora Project enabled to be able to install the requirements (MongoDB etc):
|
- Ubiquiti's license does not allow redistribution of the software ZIP, so you must manually download the ZIP of the UniFi Controller software from the [Ubiquiti website](https://www.ubnt.com/download/unifi/) and save it to `files/UniFi.unix.zip`. The most recent tested version is "UniFi v5.0.6 Zip for DIY Unix/Linux" from 2016-06-01.
|
||||||
|
|
||||||
## Usage
|
Role Variables
|
||||||
|
--------------
|
||||||
|
|
||||||
Ubiquiti's license does not allow redistribution of the software ZIP, so you
|
- **unifi_controller_rhel.ntp_server** (optional) sets your preferred NTP server for the UniFi APs to use
|
||||||
must manually download the ZIP of the UniFi Controller software from the
|
|
||||||
Ubiquiti website and save it to the same folder as the playbook as "UniFi.zip"
|
|
||||||
|
|
||||||
Optionally, update the playbook variable 'ntp_server' to point to your
|
Dependencies
|
||||||
preferred NTP server for the AP's to use.
|
------------
|
||||||
|
|
||||||
The playbook will run against the "unifi_controllers" group in your Ansible
|
n/a
|
||||||
inventory:
|
|
||||||
|
|
||||||
ansible-playbook unifi.play
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
## Support
|
- hosts: your_unifi_controllers
|
||||||
|
sudo: yes
|
||||||
|
roles:
|
||||||
|
- zyphlar.unifi_controller_rhel
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
BSD
|
||||||
|
|
||||||
|
Support
|
||||||
|
-------
|
||||||
|
|
||||||
There is none. Tested on CentOS 6 x86_64. Not tested on animals.
|
There is none. Tested on CentOS 6 x86_64. Not tested on animals.
|
||||||
|
|
||||||
Your results may vary. Discontinue use and see a doctor if rash occurs.
|
Your results may vary. Discontinue use and see a doctor if rash occurs.
|
||||||
|
|
||||||
|
Author Information
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- [fukawi2](https://github.com/fukawi2) (Original)
|
||||||
|
- [zyphlar](https://github.com/zyphlar) (Ansible Galaxy version)
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
config.ntp_server={{ ntp_server }}
|
|
2
defaults/main.yml
Normal file
2
defaults/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# defaults file for unifi_controller_rhel
|
0
files/UniFi-unix-zip-goes-here
Normal file
0
files/UniFi-unix-zip-goes-here
Normal file
2
handlers/main.yml
Normal file
2
handlers/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
# handlers file for unifi_controller_rhel
|
15
meta/main.yml
Normal file
15
meta/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: zyphlar
|
||||||
|
description: UniFi Controller for RedHat/Centos/etc
|
||||||
|
company: Zyphon LLC
|
||||||
|
license: license (MIT)
|
||||||
|
min_ansible_version: 1.2
|
||||||
|
platforms:
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- 6
|
||||||
|
galaxy_tags:
|
||||||
|
- networking
|
||||||
|
- monitoring
|
||||||
|
dependencies: []
|
44
tasks/main.yml
Normal file
44
tasks/main.yml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
# tasks file for unifi_controller_rhel
|
||||||
|
|
||||||
|
- name: abort if os is not suitable
|
||||||
|
when: ansible_os_family != "RedHat"
|
||||||
|
fail: "msg={{ansible_os_family}} is not supported by this playbook"
|
||||||
|
|
||||||
|
- name: install java and mongodb
|
||||||
|
when: ansible_os_family == "RedHat"
|
||||||
|
yum: name={{ item }} state=present
|
||||||
|
with_items:
|
||||||
|
- java-1.6.0-openjdk
|
||||||
|
- jakarta-commons-daemon-jsvc
|
||||||
|
- mongodb-server
|
||||||
|
|
||||||
|
- name: no need for the standard mongod service
|
||||||
|
service: name=mongod enabled=no state=stopped
|
||||||
|
|
||||||
|
- name: setup unifi group
|
||||||
|
group: name={{ unifi_controller_rhel.unifi_gid }} system=yes state=present
|
||||||
|
|
||||||
|
- name: setup unifi user
|
||||||
|
user: name={{ unifi_controller_rhel.unifi_uid }} home={{ unifi_controller_rhel.unifi_prefix }}/UniFi createhome=no shell=/sbin/nologin system=yes state=present
|
||||||
|
|
||||||
|
- name: copy unifi zipball to host
|
||||||
|
copy: src={{ unifi_controller_rhel.unifi_zip_file }} dest={{ unifi_controller_rhel.unifi_zip_dest }}
|
||||||
|
|
||||||
|
- name: extract unifi
|
||||||
|
command: /usr/bin/unzip -o {{ unifi_controller_rhel.unifi_zip_dest }} -d {{ unifi_controller_rhel.unifi_prefix }} creates=/opt/UniFi
|
||||||
|
|
||||||
|
- name: fix permissions
|
||||||
|
command: /bin/chown -R {{ unifi_controller_rhel.unifi_uid }}:{{ unifi_controller_rhel.unifi_gid }} {{ unifi_controller_rhel.unifi_prefix }}/UniFi
|
||||||
|
|
||||||
|
- name: symlink mongod binary to where unifi path
|
||||||
|
file: src=/usr/bin/mongod dest={{ unifi_controller_rhel.unifi_prefix }}/UniFi/bin/mongod state=link
|
||||||
|
|
||||||
|
- name: install custom config.properties
|
||||||
|
template: src=config.properties.j2 dest={{ unifi_controller_rhel.unifi_prefix }}/UniFi/data/config.properties owner={{ unifi_controller_rhel.unifi_uid }} group={{ unifi_controller_rhel.unifi_gid }}
|
||||||
|
|
||||||
|
- name: install init script
|
||||||
|
template: src=unifi.init.j2 dest=/etc/init.d/unifi owner=root group=root mode=755
|
||||||
|
|
||||||
|
- name: start unifi service
|
||||||
|
service: name=unifi enabled=yes state=started
|
1
templates/config.properties.j2
Normal file
1
templates/config.properties.j2
Normal file
|
@ -0,0 +1 @@
|
||||||
|
config.ntp_server={{ unifi_controller_rhel.ntp_server }}
|
|
@ -6,13 +6,13 @@
|
||||||
NAME="unifi"
|
NAME="unifi"
|
||||||
DESC="Ubiquiti UniFi Controller"
|
DESC="Ubiquiti UniFi Controller"
|
||||||
|
|
||||||
BASEDIR="{{unifi_prefix}}/UniFi"
|
BASEDIR="{{ unifi_controller_rhel.unifi_prefix }}/UniFi"
|
||||||
MAINCLASS="com.ubnt.ace.Launcher"
|
MAINCLASS="com.ubnt.ace.Launcher"
|
||||||
|
|
||||||
PIDFILE="/var/run/${NAME}/${NAME}.pid"
|
PIDFILE="/var/run/${NAME}/${NAME}.pid"
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||||
|
|
||||||
JAVA_HOME="{{ java_home }}"
|
JAVA_HOME="{{ unifi_controller_rhel.java_home }}"
|
||||||
# JSVC - for running java apps as services
|
# JSVC - for running java apps as services
|
||||||
JSVC=`which jsvc`
|
JSVC=`which jsvc`
|
||||||
#JSVC_OPTS="-debug"
|
#JSVC_OPTS="-debug"
|
55
unifi.play
55
unifi.play
|
@ -1,55 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
- hosts: unifi_controllers
|
|
||||||
vars:
|
|
||||||
- unifi_zip_file: UniFi-2.4.6.zip
|
|
||||||
- unifi_zip_dest: /usr/local/src/UniFi-2.4.6.zip
|
|
||||||
- unifi_prefix: /opt
|
|
||||||
- unifi_uid: unifi
|
|
||||||
- unifi_gid: unifi
|
|
||||||
- ntp_server: pool.ntp.org
|
|
||||||
- java_home: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
|
|
||||||
sudo: yes
|
|
||||||
tasks:
|
|
||||||
|
|
||||||
- name: abort if os is not suitable
|
|
||||||
when: ansible_os_family != "RedHat"
|
|
||||||
fail: "msg={{ansible_os_family}} is not supported by this playbook"
|
|
||||||
|
|
||||||
- name: install java and mongodb
|
|
||||||
when: ansible_os_family == "RedHat"
|
|
||||||
yum: name={{ item }} state=present
|
|
||||||
with_items:
|
|
||||||
- java-1.6.0-openjdk
|
|
||||||
- jakarta-commons-daemon-jsvc
|
|
||||||
- mongodb-server
|
|
||||||
|
|
||||||
- name: no need for the standard mongod service
|
|
||||||
service: name=mongod enabled=no state=stopped
|
|
||||||
|
|
||||||
- name: setup unifi group
|
|
||||||
group: name={{ unifi_gid }} system=yes state=present
|
|
||||||
|
|
||||||
- name: setup unifi user
|
|
||||||
user: name={{ unifi_uid }} home={{ unifi_prefix }}/UniFi createhome=no shell=/sbin/nologin system=yes state=present
|
|
||||||
|
|
||||||
- name: copy unifi zipball to host
|
|
||||||
copy: src={{ unifi_zip_file }} dest={{ unifi_zip_dest }}
|
|
||||||
|
|
||||||
- name: extract unifi
|
|
||||||
command: /usr/bin/unzip -o {{ unifi_zip_dest }} -d {{ unifi_prefix }} creates=/opt/UniFi
|
|
||||||
|
|
||||||
- name: fix permissions
|
|
||||||
command: /bin/chown -R {{ unifi_uid }}:{{ unifi_gid }} {{ unifi_prefix }}/UniFi
|
|
||||||
|
|
||||||
- name: symlink mongod binary to where unifi path
|
|
||||||
file: src=/usr/bin/mongod dest={{ unifi_prefix }}/UniFi/bin/mongod state=link
|
|
||||||
|
|
||||||
- name: install custom config.properties
|
|
||||||
template: src=config.properties dest={{ unifi_prefix }}/UniFi/data/config.properties owner={{ unifi_uid }} group={{ unifi_gid }}
|
|
||||||
|
|
||||||
- name: install init script
|
|
||||||
template: src=unifi.init dest=/etc/init.d/unifi owner=root group=root mode=755
|
|
||||||
|
|
||||||
- name: start unifi service
|
|
||||||
service: name=unifi enabled=yes state=started
|
|
10
vars/main.yml
Normal file
10
vars/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
# vars file for unifi_controller_rhel
|
||||||
|
|
||||||
|
- unifi_controller_rhel.ntp_server: pool.ntp.org
|
||||||
|
- unifi_controller_rhel.unifi_zip_file: UniFi.unix.zip
|
||||||
|
- unifi_controller_rhel.unifi_zip_dest: /usr/local/src/UniFi-2.4.6.zip
|
||||||
|
- unifi_controller_rhel.unifi_prefix: /opt
|
||||||
|
- unifi_controller_rhel.unifi_uid: unifi
|
||||||
|
- unifi_controller_rhel.unifi_gid: unifi
|
||||||
|
- unifi_controller_rhel.java_home: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
|
Loading…
Reference in New Issue
Block a user