Create lightrix ansible role

master
Ryan Rix 8 years ago
parent d2d064ab1e
commit 1b9f170f04

6
.gitmodules vendored

@ -0,0 +1,6 @@
[submodule "roles/rrix.setup-home"]
path = roles/rrix.setup-home
url = git://fort.kickass.systems/ansible/rrix/rrix.setup-home
[submodule "roles/rrix.common"]
path = roles/rrix.common
url = git://fort.kickass.systems/ansible/rrix/rrix.common

@ -7,5 +7,5 @@ WantedBy=default.target
[Service]
Type=simple
ExecStart=/usr/bin/python /root/lightrix.py --room '<CHANGEME>' -c /root/.mcatrc
ExecStart=/usr/bin/python /root/lightrix.py --room '{{lightrix_room_id}}' -c /root/.mcatrc
Restart=on-abnormal

@ -1,4 +1,4 @@
---
username: CHANGEME
password: CHANGEME
homeserver_uri: http://matrix.org
username: {{mcat_username}}
password: {{mcat_password}}
homeserver_uri: {{mcat_homeserver_uri}}

@ -0,0 +1,14 @@
---
- name: Create Lightrix endpoints
hosts: lightrix
vars_files:
- secrets.yaml
# XXX: Fix this
vars:
is_rhel: False
roles:
- { role: rrix.setup-home, rrix_modules: ['server'] }
- { role: rrix.lightrix }

@ -0,0 +1 @@
Subproject commit dd11389fca1a5d458fca794c969d22c8ab4eabac

@ -0,0 +1,38 @@
Role Name
=========
A brief description of the role goes here.
Requirements
------------
Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.
Role Variables
--------------
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.
Dependencies
------------
A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.
Example Playbook
----------------
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
- hosts: servers
roles:
- { role: username.rolename, x: 42 }
License
-------
BSD
Author Information
------------------
An optional section for the role authors to include contact information, or a website (HTML is not allowed).

@ -0,0 +1,2 @@
---
# defaults file for rrix.lightrix

@ -0,0 +1,9 @@
---
# handlers file for rrix.lightrix
- name: restart lightrix
service:
name: lightrix
state: restarted
- name: reload systemd
shell: systemctl daemon-reload

@ -0,0 +1,139 @@
---
galaxy_info:
author: your name
description:
company: your company (optional)
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Some suggested licenses:
# - BSD (default)
# - MIT
# - GPLv2
# - GPLv3
# - Apache
# - CC-BY
license: license (GPLv2, CC-BY, etc)
min_ansible_version: 1.2
#
# Below are all platforms currently available. Just uncomment
# the ones that apply to your role. If you don't see your
# platform on this list, let us know and we'll get it added!
#
#platforms:
#- name: EL
# versions:
# - all
# - 5
# - 6
# - 7
#- name: GenericUNIX
# versions:
# - all
# - any
#- name: Fedora
# versions:
# - all
# - 16
# - 17
# - 18
# - 19
# - 20
# - 21
# - 22
#- name: Windows
# versions:
# - all
# - 2012R2
#- name: SmartOS
# versions:
# - all
# - any
#- name: opensuse
# versions:
# - all
# - 12.1
# - 12.2
# - 12.3
# - 13.1
# - 13.2
#- name: Amazon
# versions:
# - all
# - 2013.03
# - 2013.09
#- name: GenericBSD
# versions:
# - all
# - any
#- name: FreeBSD
# versions:
# - all
# - 8.0
# - 8.1
# - 8.2
# - 8.3
# - 8.4
# - 9.0
# - 9.1
# - 9.1
# - 9.2
#- name: Ubuntu
# versions:
# - all
# - lucid
# - maverick
# - natty
# - oneiric
# - precise
# - quantal
# - raring
# - saucy
# - trusty
# - utopic
# - vivid
#- name: SLES
# versions:
# - all
# - 10SP3
# - 10SP4
# - 11
# - 11SP1
# - 11SP2
# - 11SP3
#- name: GenericLinux
# versions:
# - all
# - any
#- name: Debian
# versions:
# - all
# - etch
# - jessie
# - lenny
# - squeeze
# - wheezy
#
# Below are all categories currently available. Just as with
# the platforms above, uncomment those that apply to your role.
#
#categories:
#- cloud
#- cloud:ec2
#- cloud:gce
#- cloud:rax
#- clustering
#- database
#- database:nosql
#- database:sql
#- development
#- monitoring
#- networking
#- packaging
#- system
#- web
dependencies:
- rrix.common
# List your role dependencies here, one per line.
# Be sure to remove the '[]' above if you add dependencies
# to this list.

@ -0,0 +1,50 @@
---
- name: Ensure rpi_ws281x is cloned
git:
dest: /root/rpi_ws281x/
repo: https://github.com/jgarff/rpi_ws281x.git
update: no
- name: Ensure rpi_ws281x is built
shell: >-
cd /root/rpi_ws281x/ && scons
- name: Ensure the neopixel python library is built
shell: >-
cd /root/rpi_ws281x/python/ && python setup.py install
- name: Ensure pip is installed
yum:
state: latest
name: python-pip
- name: Ensure lightrix dependencies are installed
pip:
state: latest
name: "{{item}}"
with_items:
- matrix-client
- pyyaml
- pytz
- name: Ensure lightrix systemd service is installed
template:
src: lightrix.service
dest: /etc/systemd/system/lightrix.service
notify:
- reload systemd
- restart lightrix
- name: Ensure mcat configuration is installed
template:
src: mcatrc
dest: /root/.mcatrc
notify:
- restart lightrix
- name: Ensure lightrix is installed
copy:
src: lightrix.py
dest: /root/lightrix.py
notify:
- restart lightrix

@ -0,0 +1,2 @@
---
# vars file for rrix.lightrix

@ -0,0 +1 @@
Subproject commit 634c914e7b3189e9e5240a1f103bee2df0d72341
Loading…
Cancel
Save