Luke Murphy
6 years ago
4 changed files with 114 additions and 42 deletions
@ -1,5 +1,2 @@ |
|||
[dev] |
|||
localhost ansible_connection=local |
|||
|
|||
[prod] |
|||
varia.zone ansible_ssh_port=12345 |
|||
|
@ -1,48 +1,53 @@ |
|||
Role Name |
|||
========= |
|||
# xppl |
|||
|
|||
A brief description of the role goes here. |
|||
A role to install the XPPL. |
|||
|
|||
Requirements |
|||
------------ |
|||
# Testing |
|||
|
|||
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. |
|||
We use [Molecule] and the [Docker driver] to automate tests. |
|||
|
|||
Role Variables |
|||
-------------- |
|||
```bash |
|||
$ curl -sSL https://get.docker.com/ | sh |
|||
$ virtualenv --python=$(which python3) .venv |
|||
$ source .venv/bin/activate |
|||
$ pip install molecule docker |
|||
$ molecule test |
|||
``` |
|||
|
|||
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. |
|||
[Molecule]: https://molecule.readthedocs.io/en/latest/ |
|||
[Docker driver]: https://molecule.readthedocs.io/en/latest/configuration.html#docker |
|||
|
|||
Dependencies |
|||
------------ |
|||
# Supported OS |
|||
|
|||
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. |
|||
* Debian Stretch |
|||
|
|||
Example Playbook |
|||
---------------- |
|||
Others may be supported. However, we only test on Debian. |
|||
|
|||
Including an example of how to use your role (for instance, with variables |
|||
passed in as parameters) is always nice for users too: |
|||
# Requirements |
|||
|
|||
- hosts: servers |
|||
roles: |
|||
- { role: xppl, x: 42 } |
|||
None. |
|||
|
|||
License |
|||
------- |
|||
# Role Variables |
|||
|
|||
BSD |
|||
None. |
|||
|
|||
Author Information |
|||
------------------ |
|||
# Dependencies |
|||
|
|||
An optional section for the role authors to include contact information, or a |
|||
website (HTML is not allowed). |
|||
None. |
|||
|
|||
# Example Playbook |
|||
|
|||
|
|||
```yaml |
|||
- hosts: servers |
|||
roles: |
|||
- { role: xppl } |
|||
``` |
|||
|
|||
# License |
|||
|
|||
* GPLv3 |
|||
|
|||
# Author Information |
|||
|
|||
* https://git.vvvvvvaria.org/decentral1se |
|||
|
@ -1,8 +1,77 @@ |
|||
--- |
|||
|
|||
# create /var/xppl |
|||
# clone the latest source there |
|||
# get supervisord installed |
|||
- name: Ensure the XPPL group exists. |
|||
become: true |
|||
group: |
|||
name: xppl |
|||
system: true |
|||
state: present |
|||
|
|||
- name: Ensure the project user exists. |
|||
become: true |
|||
user: |
|||
name: xppl |
|||
system: true |
|||
groups: xppl |
|||
|
|||
- name: Add the project user to the project group. |
|||
become: true |
|||
user: |
|||
name: xppl |
|||
groups: xppl |
|||
append: true |
|||
|
|||
- name: Ensure the project root directory is created. |
|||
become: true |
|||
file: |
|||
path: /var/xppl/ |
|||
state: directory |
|||
owner: xppl |
|||
group: xppl |
|||
mode: 0755 |
|||
|
|||
- name: Ensure the Git package is installed. |
|||
become: true |
|||
yum: |
|||
name: git |
|||
state: present |
|||
|
|||
- name: Clone the latest project source. |
|||
become: true |
|||
become_user: xppl |
|||
git: |
|||
repo: https://git.vvvvvvaria.org/decentral1se/xppl.git |
|||
dest: /var/xppl/ |
|||
version: master |
|||
register: git_clone_result |
|||
|
|||
- name: Ensure the Make package is installed. |
|||
become: true |
|||
yum: |
|||
name: make |
|||
state: present |
|||
|
|||
- name: Get RQLite installed into project directory. |
|||
make: |
|||
chdir: /var/xppl |
|||
target: install-rqlite |
|||
|
|||
- name: Ensure Supervisor is installed. |
|||
become: true |
|||
yum: |
|||
name: supervisord |
|||
state: present |
|||
|
|||
- name: Ensure Supervisor is running and enabled. |
|||
service: |
|||
name: supervisord |
|||
state: started |
|||
enabled: true |
|||
tags: |
|||
- molecule-notest |
|||
|
|||
# get the rqlite database setup with supervisor |
|||
# get the nginx certificate in place |
|||
# run the gunicorn server |
|||
# configure the uploads directory with Syncthing |
|||
# write some documentation |
|||
|
Loading…
Reference in new issue