Introduction
Introduction Statistics Contact Development Disclaimer Help
merging all roles into one repo. - ansible-roles - A collection of ansible role…
Log
Files
Refs
README
LICENSE
---
commit 34be01c0601ea35294c19b9832933cf162526259
Author: Jay Scott <[email protected]>
Date: Sat, 5 Sep 2020 16:32:57 +0100
merging all roles into one repo.
Diffstat:
A LICENSE | 22 ++++++++++++++++++++++
A README | 6 ++++++
A ansible-role-stagit/.ansible-lint | 2 ++
A ansible-role-stagit/.yamllint | 11 +++++++++++
A ansible-role-stagit/LICENSE | 22 ++++++++++++++++++++++
A ansible-role-stagit/README | 44 +++++++++++++++++++++++++++++…
A ansible-role-stagit/defaults/main.… | 12 ++++++++++++
A ansible-role-stagit/files/favicon.… | 0
A ansible-role-stagit/files/logo.png | 0
A ansible-role-stagit/files/style.css | 106 ++++++++++++++++++++++++++++++
A ansible-role-stagit/handlers/main.… | 4 ++++
A ansible-role-stagit/meta/main.yml | 23 +++++++++++++++++++++++
A ansible-role-stagit/molecule/defau… | 12 ++++++++++++
A ansible-role-stagit/molecule/defau… | 23 +++++++++++++++++++++++
A ansible-role-stagit/tasks/main.yml | 69 ++++++++++++++++++++++++++++++
A ansible-role-stagit/tasks/setup-De… | 5 +++++
A ansible-role-stagit/tasks/setup-Re… | 6 ++++++
A ansible-role-stagit/tasks/variable… | 9 +++++++++
A ansible-role-stagit/templates/crea… | 42 +++++++++++++++++++++++++++…
A ansible-role-stagit/templates/post… | 3 +++
A ansible-role-stagit/vars/Debian-9.… | 7 +++++++
A ansible-role-stagit/vars/RedHat-7.… | 7 +++++++
A ansible-role-stagit/vars/RedHat-8.… | 7 +++++++
A ansible-role-stagit/vars/Ubuntu-18… | 6 ++++++
A ansible-role-stagit/vars/Ubuntu-20… | 6 ++++++
A aws-vpc/LICENSE | 22 ++++++++++++++++++++++
A aws-vpc/README | 60 +++++++++++++++++++++++++++++…
A aws-vpc/defaults/main.yml | 4 ++++
A aws-vpc/meta/main.yml | 16 ++++++++++++++++
A aws-vpc/tasks/create_nat_gateway.y… | 22 ++++++++++++++++++++++
A aws-vpc/tasks/create_routes.yml | 41 +++++++++++++++++++++++++++++…
A aws-vpc/tasks/create_subnets.yml | 13 +++++++++++++
A aws-vpc/tasks/create_vpc.yml | 21 +++++++++++++++++++++
A aws-vpc/tasks/main.yml | 16 ++++++++++++++++
A aws-vpc/tasks/pre_tasks.yml | 16 ++++++++++++++++
A firewalld/LICENSE | 22 ++++++++++++++++++++++
A firewalld/README | 71 +++++++++++++++++++++++++++++…
A firewalld/defaults/main.yml | 0
A firewalld/handlers/main.yml | 3 +++
A firewalld/meta/main.yml | 12 ++++++++++++
A firewalld/tasks/main.yml | 15 +++++++++++++++
A firewalld/vars/main.yml | 1 +
A quark/.ansible-lint | 2 ++
A quark/.yamllint | 11 +++++++++++
A quark/LICENSE | 22 ++++++++++++++++++++++
A quark/README | 39 +++++++++++++++++++++++++++++…
A quark/defaults/main.yml | 13 +++++++++++++
A quark/handlers/main.yml | 6 ++++++
A quark/meta/main.yml | 21 +++++++++++++++++++++
A quark/molecule/default/converge.yml | 25 +++++++++++++++++++++++++
A quark/molecule/default/molecule.yml | 23 +++++++++++++++++++++++
A quark/tasks/main.yml | 50 +++++++++++++++++++++++++++++…
A quark/tasks/setup-Debian.yml | 5 +++++
A quark/tasks/setup-RedHat.yml | 5 +++++
A quark/tasks/variables.yml | 9 +++++++++
A quark/templates/quark.service.j2 | 12 ++++++++++++
A quark/vars/RedHat-7.yml | 5 +++++
A quark/vars/RedHat-8.yml | 5 +++++
A quark/vars/Ubuntu-18.yml | 5 +++++
A quark/vars/Ubuntu-20.yml | 5 +++++
A searx/LICENSE | 22 ++++++++++++++++++++++
A searx/README | 42 +++++++++++++++++++++++++++++…
A searx/defaults/main.yml | 16 ++++++++++++++++
A searx/handlers/main.yml | 19 +++++++++++++++++++
A searx/meta/main.yml | 22 ++++++++++++++++++++++
A searx/molecule/default/converge.yml | 18 ++++++++++++++++++
A searx/molecule/default/molecule.yml | 23 +++++++++++++++++++++++
A searx/tasks/main.yml | 92 +++++++++++++++++++++++++++++…
A searx/tasks/setup-Debian.yml | 5 +++++
A searx/tasks/setup-RedHat.yml | 25 +++++++++++++++++++++++++
A searx/tasks/variables.yml | 19 +++++++++++++++++++
A searx/templates/searx.service.j2 | 13 +++++++++++++
A searx/templates/uwsgi.ini.j2 | 18 ++++++++++++++++++
A searx/templates/uwsgi.service.j2 | 10 ++++++++++
A searx/templates/vhost.conf.j2 | 17 +++++++++++++++++
A searx/vars/RedHat-7.yml | 17 +++++++++++++++++
A searx/vars/RedHat-8.yml | 17 +++++++++++++++++
A searx/vars/Ubuntu-16.yml | 16 ++++++++++++++++
A searx/vars/Ubuntu-18.yml | 16 ++++++++++++++++
A searx/vars/Ubuntu-20.yml | 16 ++++++++++++++++
80 files changed, 1515 insertions(+), 0 deletions(-)
---
diff --git a/LICENSE b/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/README b/README
@@ -0,0 +1,6 @@
+-= ansible-roles =-
+
+ This is a collection of ansible roles, these were all in separate git
+repos at one point, however, I have merged them into one as I rarely use them
+now. Within each role there is a README with more details on how to implement
+and use that role.
diff --git a/ansible-role-stagit/.ansible-lint b/ansible-role-stagit/.ansible-l…
@@ -0,0 +1,2 @@
+skip_list:
+ - '503'
diff --git a/ansible-role-stagit/.yamllint b/ansible-role-stagit/.yamllint
@@ -0,0 +1,11 @@
+---
+# Based on ansible-lint config
+extends: default
+
+rules:
+ line-length:
+ max: 120
+ level: warning
+
+ignore: |
+ .github/stale.yml
diff --git a/ansible-role-stagit/LICENSE b/ansible-role-stagit/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/ansible-role-stagit/README b/ansible-role-stagit/README
@@ -0,0 +1,44 @@
+-= jayscott.stagit =-
+
+Install and configure a working copy of the suckless stagit application.
+
+
+Requirements
+------------
+
+None
+
+
+Role Variables
+--------------
+
+ stagit:
+ user: root
+ repo_url: git://git.codemadness.org/stagit
+ version: HEAD
+ build_path: /opt/stagit
+ install_path: /usr/local/bin
+ git_repos_path: /opt/git
+ html_path: /var/www/stagit
+
+ cron_enabled: false
+ posthook_enabled: false
+
+posthook_enabled will install a git hook within git_repos_path directories,
+this will run create_index on a push. To over-ride the default style.css,
+logo.png and favicon.png just add a copy block for your local files
+within your playbook.
+
+
+Dependencies
+------------
+
+None
+
+
+Example Playbook
+----------------
+
+ - hosts: servers
+ roles:
+ - { role: jayscott.stagit }
diff --git a/ansible-role-stagit/defaults/main.yml b/ansible-role-stagit/defaul…
@@ -0,0 +1,12 @@
+---
+stagit:
+ user: root
+ repo_url: git://git.codemadness.org/stagit
+ version: HEAD
+ build_path: /opt/stagit
+ install_path: /usr/local/bin
+ git_repos_path: /opt/git
+ html_path: /var/www/stagit
+
+ cron_enabled: false
+ posthook_enabled: false
diff --git a/ansible-role-stagit/files/favicon.png b/ansible-role-stagit/files/…
Binary files differ.
diff --git a/ansible-role-stagit/files/logo.png b/ansible-role-stagit/files/log…
Binary files differ.
diff --git a/ansible-role-stagit/files/style.css b/ansible-role-stagit/files/st…
@@ -0,0 +1,106 @@
+body {
+ color: #000;
+ background-color: #fff;
+ font-family: monospace;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-size: 1em;
+ margin: 0;
+}
+
+img, h1, h2 {
+ vertical-align: middle;
+}
+
+img {
+ border: 0;
+}
+
+a:target {
+ background-color: #ccc;
+}
+
+a.d,
+a.h,
+a.i,
+a.line {
+ text-decoration: none;
+}
+
+#blob a {
+ color: #777;
+}
+
+#blob a:hover {
+ color: blue;
+ text-decoration: none;
+}
+
+table thead td {
+ font-weight: bold;
+}
+
+table td {
+ padding: 0 0.4em;
+}
+
+#content table td {
+ vertical-align: top;
+ white-space: nowrap;
+}
+
+#branches tr:hover td,
+#tags tr:hover td,
+#index tr:hover td,
+#log tr:hover td,
+#files tr:hover td {
+ background-color: #eee;
+}
+
+#index tr td:nth-child(2),
+#tags tr td:nth-child(3),
+#branches tr td:nth-child(3),
+#log tr td:nth-child(2) {
+ white-space: normal;
+}
+
+td.num {
+ text-align: right;
+}
+
+.desc {
+ color: #777;
+}
+
+hr {
+ border: 0;
+ border-top: 1px solid #777;
+ height: 1px;
+}
+
+pre {
+ font-family: monospace;
+}
+
+pre a.h {
+ color: #00a;
+}
+
+.A,
+span.i,
+pre a.i {
+ color: #070;
+}
+
+.D,
+span.d,
+pre a.d {
+ color: #e00;
+}
+
+pre a.h:hover,
+pre a.i:hover,
+pre a.d:hover {
+ text-decoration: none;
+}
diff --git a/ansible-role-stagit/handlers/main.yml b/ansible-role-stagit/handle…
@@ -0,0 +1,4 @@
+---
+
+- name: reindex stagit
+ command: "{{ stagit.install_path }}/create_index"
diff --git a/ansible-role-stagit/meta/main.yml b/ansible-role-stagit/meta/main.…
@@ -0,0 +1,23 @@
+---
+galaxy_info:
+ role_name: stagit
+ author: jayscott
+ description: install role for stagit application.
+ license: "license (BSD, MIT)"
+ min_ansible_version: 2.9
+
+ platforms:
+ - name: Ubuntu
+ versions:
+ - focal
+ - bionic
+ - name: EL
+ versions:
+ - 8
+ - name: Debian
+ version:
+ - 9
+
+ galaxy_tags: []
+
+dependencies: []
diff --git a/ansible-role-stagit/molecule/default/converge.yml b/ansible-role-s…
@@ -0,0 +1,12 @@
+---
+- name: Converge
+ hosts: all
+
+ pre_tasks:
+ - name: Update apt cache.
+ apt: update_cache=true cache_valid_time=600
+ changed_when: false
+ when: ansible_os_family == 'Debian'
+
+ roles:
+ - role: jayscott.stagit
diff --git a/ansible-role-stagit/molecule/default/molecule.yml b/ansible-role-s…
@@ -0,0 +1,23 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint: |
+ set -e
+ yamllint .
+ ansible-lint
+platforms:
+ - name: instance
+ image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2004}-ansible:latest"
+ command: ${MOLECULE_DOCKER_COMMAND:-""}
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ privileged: true
+ pre_build_image: true
+ published_ports:
+ - "0.0.0.0:8000:22/tcp"
+provisioner:
+ name: ansible
+ playbooks:
+ converge: ${MOLECULE_PLAYBOOK:-converge.yml}
diff --git a/ansible-role-stagit/tasks/main.yml b/ansible-role-stagit/tasks/mai…
@@ -0,0 +1,69 @@
+---
+- name: Include variables
+ include_tasks: variables.yml
+
+- name: Debian tasks
+ include_tasks: setup-Debian.yml
+ when: ansible_os_family == 'Debian'
+
+- name: Redhat tasks
+ include_tasks: setup-RedHat.yml
+ when: ansible_os_family == 'RedHat'
+
+- name: Git clone stagit
+ git:
+ repo: "{{ stagit.repo_url }}"
+ dest: "{{ stagit.build_path }}"
+ version: "{{ stagit.version }}"
+ update: false
+ force: false
+ depth: 1
+ register: git_updated
+
+- name: Make install stagit it
+ make:
+ chdir: "{{ stagit.build_path }}"
+ target: install
+ when: git_updated.changed
+
+- name: Copy stagit create script
+ template:
+ src: "create_index.j2"
+ dest: "{{ stagit.install_path }}/create_index"
+ owner: "{{ stagit.user }}"
+ group: "{{ stagit.user }}"
+ mode: '755'
+ notify: reindex stagit
+
+- name: Copy stagit posthook script
+ template:
+ src: "posthook.j2"
+ dest: "{{ stagit.install_path }}/posthook"
+ owner: "{{ stagit.user }}"
+ group: "{{ stagit.user }}"
+ mode: '755'
+ notify: reindex stagit
+ when: stagit.posthook_enabled
+
+- name: Create HTML and assets directory
+ file:
+ path: "{{ stagit.html_path }}/assets"
+ state: directory
+ owner: "{{ stagit.user }}"
+ group: "{{ stagit.user }}"
+ mode: '0755'
+
+- name: Create cron for stagit index
+ cron:
+ name: stagit update
+ minute: "*/10"
+ user: "{{ stagit.user }}"
+ job: "{{ stagit.install_path }}/create_index"
+ when: stagit.cron_enabled
+
+- name: Disable cron for stagit index
+ cron:
+ name: stagit update
+ user: "{{ stagit.user }}"
+ state: absent
+ when: not stagit.cron_enabled
diff --git a/ansible-role-stagit/tasks/setup-Debian.yml b/ansible-role-stagit/t…
@@ -0,0 +1,5 @@
+---
+- name: Ensure stagit dependencies are installed.
+ apt:
+ name: "{{ stagit_dependencies }}"
+ state: present
diff --git a/ansible-role-stagit/tasks/setup-RedHat.yml b/ansible-role-stagit/t…
@@ -0,0 +1,6 @@
+---
+- name: Ensure stagit dependencies are installed
+ yum:
+ name: "{{ stagit_dependencies }}"
+ enablerepo: PowerTools
+ state: present
diff --git a/ansible-role-stagit/tasks/variables.yml b/ansible-role-stagit/task…
@@ -0,0 +1,9 @@
+---
+- name: Include OS-specific variables (Debian)
+ include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_version.sp…
+ when: ansible_os_family == 'Debian'
+
+- name: Include OS-specific variables (RedHat)
+ include_vars: "{{ ansible_os_family }}-{{ ansible_distribution_version.split…
+ when:
+ - ansible_os_family == 'RedHat'
diff --git a/ansible-role-stagit/templates/create_index.j2 b/ansible-role-stagi…
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+reposdir="{{ stagit.git_repos_path }}"
+curdir="{{ stagit.html_path }}"
+
+{{ stagit.install_path }}/stagit-index "${reposdir}/"*/ > "${curdir}/index.htm…
+
+cd {{ stagit.build_path }}
+cp style.css {{ stagit.html_path}}/style.css
+cp favicon.png {{ stagit.html_path}}/favicon.png
+cp logo.png {{ stagit.html_path}}/logo.png
+
+for dir in "${reposdir}/"*/; do
+
+ # install hook if defined
+ {% if stagit.posthook_enabled %}
+ if ! test -L "${dir}hooks/stagit_build"; then
+ ln -s "{{ stagit.install_path }}/posthook" "${dir}hooks/stagit…
+ fi
+ {% else %}
+ if test -L "${dir}hooks/stagit_build"; then
+ unlink "${dir}hooks/stagit_build"
+ fi
+ {% endif %}
+
+ r=$(basename "${dir}")
+ d=$(basename "${dir}" ".git")
+ printf "%s... " "${d}"
+
+ mkdir -p "${curdir}/${d}"
+ cd "${curdir}/${d}" || continue
+ {{ stagit.install_path }}/stagit -c ".cache" "${reposdir}/${r}"
+
+ # symlinks
+ ln -sf log.html index.html
+ ln -sf ../style.css style.css
+ ln -sf ../logo.png logo.png
+ ln -sf ../favicon.png favicon.png
+
+ echo "done"
+done
+
diff --git a/ansible-role-stagit/templates/posthook.j2 b/ansible-role-stagit/te…
@@ -0,0 +1,3 @@
+#!/usr/bin/env sh
+
+{{ stagit.install_path }}/create_index
diff --git a/ansible-role-stagit/vars/Debian-9.yml b/ansible-role-stagit/vars/D…
@@ -0,0 +1,7 @@
+---
+stagit_dependencies:
+ - git
+ - libgit2-dev
+ - cron
+ - make
+ - gcc
diff --git a/ansible-role-stagit/vars/RedHat-7.yml b/ansible-role-stagit/vars/R…
@@ -0,0 +1,7 @@
+---
+stagit_dependencies:
+ - git
+ - libgit2-devel
+ - make
+ - gcc
+ - cronie
diff --git a/ansible-role-stagit/vars/RedHat-8.yml b/ansible-role-stagit/vars/R…
@@ -0,0 +1,7 @@
+---
+stagit_dependencies:
+ - git
+ - libgit2-devel
+ - make
+ - gcc
+ - cronie
diff --git a/ansible-role-stagit/vars/Ubuntu-18.yml b/ansible-role-stagit/vars/…
@@ -0,0 +1,6 @@
+---
+stagit_dependencies:
+ - git
+ - libgit2-dev
+ - make
+ - gcc
diff --git a/ansible-role-stagit/vars/Ubuntu-20.yml b/ansible-role-stagit/vars/…
@@ -0,0 +1,6 @@
+---
+stagit_dependencies:
+ - git
+ - libgit2-dev
+ - make
+ - gcc
diff --git a/aws-vpc/LICENSE b/aws-vpc/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/aws-vpc/README b/aws-vpc/README
@@ -0,0 +1,60 @@
+-= jayscott.aws_vpc =-
+
+Provision AWS VPC, Subnets, Internet & NAT gateways and routes.
+
+
+Requirements
+------------
+
+You must already have AWS access keys setup in your environment:
+
+aws_access_key_id
+aws_secret_access_key
+
+
+Role Variables
+--------------
+
+ aws_region: us-west-2 # The region to deploy the VPC
+ vpc_name: secuirty_vpc # A name for your VPC
+ vpc:
+ cidr_block: 10.0.0.0/16 # The CIDR block for the VPC
+ nat_gateway_subnet_name: public_secuirty_subnet # The public subnet th…
+ tenancy: default
+ subnets:
+ - name: public_secuirty_subnet # Name of the subnet
+ cidr_block: 10.0.0.0/24 # CIDR of the subnet
+ az: us-west-2a # The Availability zone within the region
+ gateway: igw # Type of gateway, igw = Internet Gateway, nat = NAT ga…
+
+
+Dependencies
+------------
+
+None
+
+
+Example Playbook
+----------------
+
+
+ - hosts: servers
+ vars:
+ aws_region: us-west-2
+ vpc_name: elk_cluster_vpc
+ vpc:
+ cidr_block: 10.0.0.0/16
+ nat_gateway_subnet_name: public_elk_stack
+ tenancy: default
+ subnets:
+ - name: public_elk_stack
+ cidr_block: 10.0.0.0/24
+ az: us-west-2a
+ gateway: igw
+ - name: private_elk_stack
+ cidr_block: 10.0.1.0/24
+ az: us-west-2a
+ gateway: nat
+ roles:
+ - { role: aws_vpc }
+
diff --git a/aws-vpc/defaults/main.yml b/aws-vpc/defaults/main.yml
@@ -0,0 +1,4 @@
+---
+tenancy: default
+aws_region: us-west-2
+vpc.nat_gateway_subnet_name: ''
diff --git a/aws-vpc/meta/main.yml b/aws-vpc/meta/main.yml
@@ -0,0 +1,16 @@
+---
+galaxy_info:
+ author: jayscott
+ license: MIT
+ description: Provision an AWS VPC, Internet & NAT Gateways, Subnets and Rout…
+ min_ansible_version: 2.4
+ platforms:
+ - name: Amazon
+ versions:
+ - all
+ galaxy_tags:
+ - system
+ - cloud
+ - vpc
+ - aws
+ - amazon
diff --git a/aws-vpc/tasks/create_nat_gateway.yml b/aws-vpc/tasks/create_nat_ga…
@@ -0,0 +1,22 @@
+---
+- name: get subnet ID for NAT GW deployment
+ ec2_vpc_subnet_facts:
+ filters:
+ vpc-id: "{{ my_vpc.vpc.id }}"
+ "tag:Name": "{{ vpc.nat_gateway_subnet_name }}"
+ region: "{{ aws_region }}"
+ register: nat_gateway_subnet
+
+- name: fail if more than 1 subnet found
+ fail:
+ msg: "Found {{ nat_gateway_subnet.subnets|length }} subnets instead of 1 s…
+ when: 'nat_gateway_subnet.subnets|length != 1'
+
+- name: create nat gateway
+ ec2_vpc_nat_gateway:
+ if_exist_do_not_create: true
+ region: "{{ aws_region }}"
+ state: present
+ subnet_id: "{{ nat_gateway_subnet.subnets[0].id }}"
+ wait: true
+ register: nat_gateway
diff --git a/aws-vpc/tasks/create_routes.yml b/aws-vpc/tasks/create_routes.yml
@@ -0,0 +1,41 @@
+---
+- name: lists
+ set_fact:
+ public_subnets: []
+ private_subnets: []
+
+- name: public subnets
+ set_fact:
+ public_subnets: "{{ public_subnets + [ item.name ] }}"
+ with_items: "{{ vpc.subnets }}"
+ when: 'item.gateway is defined and item.gateway == "igw"'
+
+- name: create public route table
+ ec2_vpc_route_table:
+ region: "{{ aws_region }}"
+ routes:
+ - dest: 0.0.0.0/0
+ gateway_id: igw
+ state: present
+ subnets: "{{ public_subnets }}"
+ tags:
+ Name: "{{ vpc_name }}_public"
+ vpc_id: "{{ my_vpc.vpc.id }}"
+
+- name: private subnets with outbound access
+ set_fact:
+ private_subnets: "{{ private_subnets + [ item.name ] }}"
+ with_items: "{{ vpc.subnets }}"
+ when: 'vpc.nat_gateway_subnet_name is defined and item.gateway is defined an…
+
+- name: create private routes table with NAT gateway
+ ec2_vpc_route_table:
+ region: "{{ aws_region }}"
+ routes:
+ - dest: 0.0.0.0/0
+ gateway_id: "{{ nat_gateway.nat_gateway_id }}"
+ state: present
+ subnets: "{{ private_subnets }}"
+ tags:
+ Name: "{{ vpc_name }}_private_nat"
+ vpc_id: "{{ my_vpc.vpc.id }}"
diff --git a/aws-vpc/tasks/create_subnets.yml b/aws-vpc/tasks/create_subnets.yml
@@ -0,0 +1,13 @@
+---
+
+- name: create subnets
+ ec2_vpc_subnet:
+ az: "{{ item.az }}"
+ cidr: "{{ item.cidr_block }}"
+ region: "{{ aws_region }}"
+ state: present
+ map_public: "{{ item.assign_public_ip|default(omit) }}"
+ tags:
+ Name: "{{ item.name }}"
+ vpc_id: "{{ my_vpc.vpc.id }}"
+ with_items: "{{ vpc.subnets }}"
diff --git a/aws-vpc/tasks/create_vpc.yml b/aws-vpc/tasks/create_vpc.yml
@@ -0,0 +1,21 @@
+---
+- name: create VPC
+ ec2_vpc_net:
+ cidr_block: "{{ vpc.cidr_block }}"
+ name: "{{ vpc_name }}"
+ region: "{{ aws_region }}"
+ state: present
+ tenancy: default
+ register: my_vpc
+
+- name: set VPC ID in variable
+ set_fact:
+ vpc_id: "{{ my_vpc.vpc.id }}"
+ when: my_vpc.vpc is defined
+
+- name: create IGW
+ ec2_vpc_igw:
+ region: "{{ aws_region }}"
+ state: present
+ vpc_id: "{{ my_vpc.vpc.id }}"
+ register: created_igw
diff --git a/aws-vpc/tasks/main.yml b/aws-vpc/tasks/main.yml
@@ -0,0 +1,16 @@
+---
+- name: run pre-tasks
+ include: pre_tasks.yml
+
+- name: create VPC
+ include: create_vpc.yml
+
+- name: create Subnets
+ include: create_subnets.yml
+
+- name: create NAT gateway
+ include: create_nat_gateway.yml
+ when: vpc.nat_gateway_subnet_name is defined
+
+- name: create routing tables
+ include: create_routes.yml
diff --git a/aws-vpc/tasks/pre_tasks.yml b/aws-vpc/tasks/pre_tasks.yml
@@ -0,0 +1,16 @@
+---
+- name: "AWS | VPC | check region has been defined (aws_region)"
+ fail: msg="You must specify a AWS region."
+ when: aws_region is undefined
+
+- name: "AWS | VPC | check VPC name has been defined (vpc_name)"
+ fail: msg="You must specify a VPC name."
+ when: vpc_name is undefined
+
+- name: "AWS | VPC | check cidr_block been defined (vpc.cidr_block)"
+ fail: msg="You must specify a CIDR block."
+ when: vpc.cidr_block is undefined
+
+- name: "AWS | VPC | check at least one been defined (vpc.subnets)"
+ fail: msg="You must specify at least one subnet."
+ when: vpc.subnets is undefined
diff --git a/firewalld/LICENSE b/firewalld/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/firewalld/README b/firewalld/README
@@ -0,0 +1,71 @@
+-= jayscott.firewalld =-
+
+Allows you to add firewall rules to systems running firewalld.
+
+Requirements
+------------
+
+Tested on RHEL 7 and CentOS 7 only.
+
+Ansible 1.5 or above
+
+
+Role Variables
+--------------
+
+The following variables are used to define a rule:
+
+ firewalld_rules:
+ name:
+ port:
+ protocol:
+ state:
+ zone:
+ permanent:
+
+For example the default is to allow SSH on the public interface:
+
+ firewalld_rules:
+ ssh:
+ port: 22
+ protocol: tcp
+ state: enabled
+ zone: public
+ permanent: true
+
+
+Handlers
+--------
+
+These are the handlers that are defined in handlers/main.yml.
+
+ restart firewalld
+
+
+Example Playbook
+----------------
+
+ - hosts: server-name
+ sudo: True
+ roles:
+ - jayscott.firewalld
+ vars:
+ firewalld_rules:
+ httpd:
+ port: 80
+ protocol: tcp
+ state: enabled
+ zone: public
+ permanent: true
+ mysqld:
+ port: 3306
+ protocol: tcp
+ state: enabled
+ zone: public
+ permanent: true
+
+
+License
+-------
+
+MIT
diff --git a/firewalld/defaults/main.yml b/firewalld/defaults/main.yml
diff --git a/firewalld/handlers/main.yml b/firewalld/handlers/main.yml
@@ -0,0 +1,3 @@
+---
+- name: restart firewalld
+ service: name=firewalld state=restarted enabled=yes
diff --git a/firewalld/meta/main.yml b/firewalld/meta/main.yml
@@ -0,0 +1,12 @@
+---
+galaxy_info:
+ author: jayscott
+ description: Base role for firewalld
+ license: MIT
+ min_ansible_version: 1.5
+ platforms:
+ - name: EL
+ versions:
+ - 7
+ categories:
+ - system
diff --git a/firewalld/tasks/main.yml b/firewalld/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+
+- name: check if firewalld is installed
+ command: rpm -q firewalld
+ ignore_errors: True
+ register: rpm_check_firewalld
+
+- name: install firewalld
+ yum: name=firewalld state=present enabled=yes
+ when: rpm_check_firewalld.stdout.find('is not installed') != -1
+
+- name: updating firewall rules
+ firewalld: port={{item.value.port}}/{{item.value.protocol}} permanent={{item…
+ with_dict: "{{firewalld_rules}}"
+ notify: restart firewalld
diff --git a/firewalld/vars/main.yml b/firewalld/vars/main.yml
@@ -0,0 +1 @@
+---
diff --git a/quark/.ansible-lint b/quark/.ansible-lint
@@ -0,0 +1,2 @@
+skip_list:
+ - '503'
diff --git a/quark/.yamllint b/quark/.yamllint
@@ -0,0 +1,11 @@
+---
+# Based on ansible-lint config
+extends: default
+
+rules:
+ line-length:
+ max: 120
+ level: warning
+
+ignore: |
+ .github/stale.yml
diff --git a/quark/LICENSE b/quark/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/quark/README b/quark/README
@@ -0,0 +1,39 @@
+-= jayscott.quark =-
+
+Install and configure a working copy of the suckless quark web server.
+
+
+Requirements
+------------
+
+None
+
+
+Role Variables
+--------------
+
+ quark:
+ version: HEAD
+ build_path: /opt/quark
+ install_path: /usr/local/bin
+ user: nobody
+ group: nogroup
+ host: 0.0.0.0
+ port: 8000
+ html_path: /var/www/html
+ file: index.html
+ threads: 512
+
+
+Dependencies
+------------
+
+None
+
+
+Example Playbook
+----------------
+
+ - hosts: servers
+ roles:
+ - { role: jayscott.quark }
diff --git a/quark/defaults/main.yml b/quark/defaults/main.yml
@@ -0,0 +1,13 @@
+---
+quark:
+ version: HEAD
+ build_path: /opt/quark
+ install_path: /usr/local/bin
+
+ user: nobody
+ group: nogroup
+ host: 0.0.0.0
+ port: 8000
+ html_path: /var/www/html
+ file: index.html
+ threads: 512
diff --git a/quark/handlers/main.yml b/quark/handlers/main.yml
@@ -0,0 +1,6 @@
+---
+- name: restart quark
+ systemd:
+ name: quark
+ state: restarted
+ daemon_reload: true
diff --git a/quark/meta/main.yml b/quark/meta/main.yml
@@ -0,0 +1,21 @@
+---
+galaxy_info:
+ role_name: quark
+ author: jayscott
+ description: install role for quark application.
+ license: "license (BSD, MIT)"
+ min_ansible_version: 2.9
+
+ platforms:
+ - name: Ubuntu
+ versions:
+ - focal
+ - bionic
+ - name: EL
+ versions:
+ - 7
+ - 8
+
+ galaxy_tags: []
+
+dependencies: []
diff --git a/quark/molecule/default/converge.yml b/quark/molecule/default/conve…
@@ -0,0 +1,25 @@
+---
+- name: Converge
+ hosts: all
+
+ pre_tasks:
+ - name: Update apt cache.
+ apt: update_cache=true cache_valid_time=600
+ changed_when: false
+ when: ansible_os_family == 'Debian'
+
+ - name: Create directory for testing
+ file:
+ path: /var/www/html
+ state: directory
+ mode: '0755'
+
+ - name: "Creat test index.html file"
+ copy:
+ content: "Quark test instance"
+ dest: /var/www/html/index.html
+ force: true
+ mode: 0744
+
+ roles:
+ - role: jayscott.quark
diff --git a/quark/molecule/default/molecule.yml b/quark/molecule/default/molec…
@@ -0,0 +1,23 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint: |
+ set -e
+ yamllint .
+ ansible-lint
+platforms:
+ - name: instance
+ image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2004}-ansible:latest"
+ command: ${MOLECULE_DOCKER_COMMAND:-""}
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ privileged: true
+ pre_build_image: true
+ published_ports:
+ - "0.0.0.0:8000:8000/tcp"
+provisioner:
+ name: ansible
+ playbooks:
+ converge: ${MOLECULE_PLAYBOOK:-converge.yml}
diff --git a/quark/tasks/main.yml b/quark/tasks/main.yml
@@ -0,0 +1,50 @@
+---
+- name: Include variables
+ include_tasks: variables.yml
+
+- name: Debian tasks
+ include_tasks: setup-Debian.yml
+ when: ansible_os_family == 'Debian'
+
+- name: Redhat tasks
+ include_tasks: setup-RedHat.yml
+ when: ansible_os_family == 'RedHat'
+
+- name: Add quark user account
+ user:
+ name: "{{ quark.user }}"
+ create_home: false
+ shell: /bin/false
+
+- name: Ensure group exists
+ group:
+ name: "{{ quark.group }}"
+ state: present
+
+- name: Git clone quark
+ git:
+ repo: "git://git.suckless.org/quark"
+ dest: "{{ quark.build_path }}"
+ version: "{{ quark.version }}"
+ update: false
+ force: false
+ depth: 1
+ register: git_updated
+
+- name: Make install quark
+ make:
+ chdir: "{{ quark.build_path }}"
+ target: install
+ when: git_updated.changed
+
+- name: Copy quark systemd service template
+ template:
+ src: quark.service.j2
+ dest: /lib/systemd/system/quark.service
+ notify: restart quark
+
+- name: Enable and start quark service
+ service:
+ name: quark
+ state: started
+ enabled: true
diff --git a/quark/tasks/setup-Debian.yml b/quark/tasks/setup-Debian.yml
@@ -0,0 +1,5 @@
+---
+- name: Ensure quark dependencies are installed.
+ apt:
+ name: "{{ quark_dependencies }}"
+ state: present
diff --git a/quark/tasks/setup-RedHat.yml b/quark/tasks/setup-RedHat.yml
@@ -0,0 +1,5 @@
+---
+- name: Ensure quark dependencies are installed
+ yum:
+ name: "{{ quark_dependencies }}"
+ state: present
diff --git a/quark/tasks/variables.yml b/quark/tasks/variables.yml
@@ -0,0 +1,9 @@
+---
+- name: Include OS-specific variables (Debian)
+ include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_version.sp…
+ when: ansible_os_family == 'Debian'
+
+- name: Include OS-specific variables (RedHat)
+ include_vars: "{{ ansible_os_family }}-{{ ansible_distribution_version.split…
+ when:
+ - ansible_os_family == 'RedHat'
diff --git a/quark/templates/quark.service.j2 b/quark/templates/quark.service.j2
@@ -0,0 +1,12 @@
+[Unit]
+Description=Quark suckless web server
+
+[Service]
+Type=simple
+Restart=on-failure
+
+WorkingDirectory={{ quark.html_path }}
+ExecStart={{ quark.install_path }}/quark -p {{ quark.port }} -u {{ quark.user …
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quark/vars/RedHat-7.yml b/quark/vars/RedHat-7.yml
@@ -0,0 +1,5 @@
+---
+quark_dependencies:
+ - git
+ - make
+ - gcc
diff --git a/quark/vars/RedHat-8.yml b/quark/vars/RedHat-8.yml
@@ -0,0 +1,5 @@
+---
+quark_dependencies:
+ - git
+ - make
+ - gcc
diff --git a/quark/vars/Ubuntu-18.yml b/quark/vars/Ubuntu-18.yml
@@ -0,0 +1,5 @@
+---
+quark_dependencies:
+ - git
+ - make
+ - gcc
diff --git a/quark/vars/Ubuntu-20.yml b/quark/vars/Ubuntu-20.yml
@@ -0,0 +1,5 @@
+---
+quark_dependencies:
+ - git
+ - make
+ - gcc
diff --git a/searx/LICENSE b/searx/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jay Scott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/searx/README b/searx/README
@@ -0,0 +1,42 @@
+-= jayscott.searx =-
+
+Install and configure a working copy of the Searx application.
+
+
+Requirements
+------------
+
+None
+
+
+Role Variables
+--------------
+
+ # Searx config
+ searx_release: HEAD
+ searx_user: searx
+ searx_install_path: /usr/local/searx
+ searx_debug: false
+
+ # Nginx config
+ searx_server_name: searx.mydomain.com
+ searx_access_log: /dev/null
+ searx_error_log: /dev/null
+ searx_remove_nginx_default: true
+
+ # Uwsgi config
+ searx_uwsgi_workers: 4
+
+
+Dependencies
+------------
+
+None
+
+
+Example Playbook
+----------------
+
+ - hosts: servers
+ roles:
+ - { role: jayscott.searx }
diff --git a/searx/defaults/main.yml b/searx/defaults/main.yml
@@ -0,0 +1,16 @@
+---
+
+# Searx config
+searx_release: HEAD
+searx_user: searx
+searx_install_path: /usr/local/searx
+searx_debug: false
+
+# Nginx config
+searx_server_name: localhost
+searx_access_log: /var/log/nginx/access.log
+searx_error_log: /var/log/nginx/error.log
+searx_remove_nginx_default: true
+
+# Uwsgi config
+searx_uwsgi_workers: 4
diff --git a/searx/handlers/main.yml b/searx/handlers/main.yml
@@ -0,0 +1,19 @@
+---
+
+- name: Restart searx
+ systemd:
+ name: searx
+ state: restarted
+ daemon_reload: true
+
+- name: Restart nginx
+ systemd:
+ name: nginx
+ state: restarted
+ daemon_reload: true
+
+- name: Restart uwsgi
+ systemd:
+ name: uwsgi
+ state: restarted
+ daemon_reload: true
diff --git a/searx/meta/main.yml b/searx/meta/main.yml
@@ -0,0 +1,22 @@
+---
+galaxy_info:
+ role_name: searx
+ author: jayscott
+ description: install role for searx application.
+ license: "license (BSD, MIT)"
+ min_ansible_version: 2.9
+
+ platforms:
+ - name: Ubuntu
+ versions:
+ - focal
+ - bionic
+ - xenial
+ - name: EL
+ versions:
+ - 7
+ - 8
+
+ galaxy_tags: []
+
+dependencies: []
diff --git a/searx/molecule/default/converge.yml b/searx/molecule/default/conve…
@@ -0,0 +1,18 @@
+---
+- name: Converge
+ hosts: all
+
+ pre_tasks:
+ - name: Update apt cache.
+ apt: update_cache=true cache_valid_time=600
+ changed_when: false
+ when: ansible_os_family == 'Debian'
+
+ roles:
+ - role: jayscott.searx
+
+ post_tasks:
+ - name: Verify searx is listening.
+ uri:
+ url: "http://localhost:8888"
+ status_code: 200
diff --git a/searx/molecule/default/molecule.yml b/searx/molecule/default/molec…
@@ -0,0 +1,23 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint: |
+ set -e
+ yamllint .
+ ansible-lint
+platforms:
+ - name: instance
+ image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2004}-ansible:latest"
+ command: ${MOLECULE_DOCKER_COMMAND:-""}
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ privileged: true
+ pre_build_image: true
+ published_ports:
+ - "0.0.0.0:8000:80/tcp"
+provisioner:
+ name: ansible
+ playbooks:
+ converge: ${MOLECULE_PLAYBOOK:-converge.yml}
diff --git a/searx/tasks/main.yml b/searx/tasks/main.yml
@@ -0,0 +1,92 @@
+---
+- include_tasks: variables.yml
+
+- name: Add searx user account.
+ user:
+ name: "{{ searx_user }}"
+ home: "{{ searx_install_path }}"
+ create_home: false
+ register: add_user
+
+- include_tasks: setup-Debian.yml
+ when: ansible_os_family == 'Debian'
+
+- include_tasks: setup-RedHat.yml
+ when: ansible_os_family == 'RedHat'
+
+- name: Git clone searx repo.
+ git:
+ repo: 'https://github.com/asciimoo/searx.git'
+ dest: "{{ searx_install_path }}"
+ version: "{{ searx_release }}"
+ update: false
+ force: false
+ depth: 1
+ register: git_updated
+
+- name: Install python dependencies.
+ pip:
+ virtualenv: searx-ve
+ virtualenv_site_packages: true
+ requirements: requirements.txt
+ extra_args: '--no-cache-dir'
+ chdir: '{{ searx_install_path }}'
+
+- name: Generate secret key.
+ command: openssl rand -hex 16
+ register: searx_key
+ when: git_updated.changed
+
+- name: Update searx secret key.
+ replace:
+ dest: "{{ searx_install_path }}/searx/settings.yml"
+ regexp: ultrasecretkey
+ replace: "{{ searx_key.stdout }}"
+ when: git_updated.changed
+ notify: Restart searx
+
+- name: Disable searx debugging.
+ replace:
+ dest: "{{ searx_install_path }}/searx/settings.yml"
+ regexp: "debug : True"
+ replace: "debug : False"
+ when: not searx_debug
+ notify: Restart searx
+
+- name: Enable searx debugging.
+ replace:
+ dest: "{{ searx_install_path }}/searx/settings.yml"
+ regexp: "debug : False"
+ replace: "debug : True"
+ when: searx_debug
+ notify: Restart searx
+
+- name: Copy searx systemd service template.
+ template:
+ src: searx.service.j2
+ dest: /lib/systemd/system/searx.service
+
+- name: Enable and start searx service
+ service:
+ name: searx
+ state: started
+ enabled: true
+
+- name: Copy nginx config.
+ template:
+ src: vhost.conf.j2
+ dest: "{{ nginx_vhost_path }}/vhost_searx.conf"
+ notify: Restart nginx
+
+- name: Remove default nginx config.
+ file:
+ path: /etc/nginx/sites-enabled/default
+ state: absent
+ when: searx_remove_nginx_default
+ notify: Restart nginx
+
+- name: Copy uwsgi config.
+ template:
+ src: uwsgi.ini.j2
+ dest: /etc/uwsgi/apps-enabled/searx.ini
+ notify: Restart uwsgi
diff --git a/searx/tasks/setup-Debian.yml b/searx/tasks/setup-Debian.yml
@@ -0,0 +1,5 @@
+---
+- name: Ensure searx dependencies are installed.
+ apt:
+ name: "{{ searx_dependencies }}"
+ state: present
diff --git a/searx/tasks/setup-RedHat.yml b/searx/tasks/setup-RedHat.yml
@@ -0,0 +1,25 @@
+---
+- name: Ensure searx dependencies are installed.
+ yum:
+ name: "{{ searx_dependencies }}"
+ state: present
+
+- name: Install uwsgi via pip
+ pip:
+ name: uwsgi
+ state: present
+
+- name: Copy uwsgi systemd service template.
+ template:
+ src: uwsgi.service.j2
+ dest: /lib/systemd/system/uwsgi.service
+ when: ansible_os_family == 'RedHat'
+ notify: Restart uwsgi
+
+- name: Create directories if they don't exist
+ file:
+ path: /etc/uwsgi/apps-enabled
+ state: directory
+ owner: "{{ searx_user }}"
+ group: "{{ searx_user }}"
+ mode: '0755'
diff --git a/searx/tasks/variables.yml b/searx/tasks/variables.yml
@@ -0,0 +1,19 @@
+---
+- name: Include OS-specific variables (Debian).
+ include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_version.sp…
+ when: ansible_os_family == 'Debian'
+
+- name: Include OS-specific variables (RedHat).
+ include_vars: "{{ ansible_os_family }}-{{ ansible_distribution_version.split…
+ when:
+ - ansible_os_family == 'RedHat'
+
+- name: Define searx_dependencies.
+ set_fact:
+ searx_dependencies: "{{ __searx_dependencies }}"
+ when: searx_dependencies is not defined
+
+- name: Define nginx_vhost_path.
+ set_fact:
+ nginx_vhost_path: "{{ __nginx_vhost_path }}"
+ when: nginx_vhost_path is not defined
diff --git a/searx/templates/searx.service.j2 b/searx/templates/searx.service.j2
@@ -0,0 +1,13 @@
+[Unit]
+Description=Searx Meta Search Engine
+
+[Service]
+Type=simple
+User={{ searx_user }}
+Group={{ searx_user }}
+Restart=on-failure
+WorkingDirectory={{ searx_install_path }}
+ExecStart={{ searx_install_path }}/searx-ve/bin/python searx/webapp.py
+
+[Install]
+WantedBy=multi-user.target
diff --git a/searx/templates/uwsgi.ini.j2 b/searx/templates/uwsgi.ini.j2
@@ -0,0 +1,18 @@
+[uwsgi]
+uid = {{ searx_user }}
+gid = {{ searx_user }}
+
+disable-logging = true
+workers = {{ searx_uwsgi_workers }}
+chmod-socket = 666
+single-interpreter = true
+master = true
+plugin = python3
+lazy-apps = true
+enable-threads = true
+module = searx.webapp
+socket = /run/uwsgi/app/searx/socket
+route-run = fixpathinfo:
+virtualenv = /usr/local/searx/searx-ve/
+pythonpath = /usr/local/searx/
+chdir = /usr/local/searx/searx/
diff --git a/searx/templates/uwsgi.service.j2 b/searx/templates/uwsgi.service.j2
@@ -0,0 +1,10 @@
+[Unit]
+Description=uwsgi start up script
+
+[Service]
+Type=simple
+Restart=on-failure
+
+WorkingDirectory={{ searx_install_path }}
+ExecStartPre=-/usr/bin/bash -c 'mkdir -p /run/uwsgi/app/searx; chown -R {{ sea…
+ExecStart=/usr/bin/bash -c '{{ searx_install_path }}/searx-ve/bin/python searx…
diff --git a/searx/templates/vhost.conf.j2 b/searx/templates/vhost.conf.j2
@@ -0,0 +1,17 @@
+server {
+ listen 80;
+ server_name _ {{ searx_server_name }};
+ root {{ searx_install_path}}/searx;
+
+ server_tokens off;
+ access_log {{ searx_access_log }};
+ error_log {{ searx_error_log }};
+
+ location /static {
+ }
+
+ location / {
+ include uwsgi_params;
+ uwsgi_pass unix:/run/uwsgi/app/searx/socket;
+ }
+}
diff --git a/searx/vars/RedHat-7.yml b/searx/vars/RedHat-7.yml
@@ -0,0 +1,17 @@
+---
+__searx_dependencies:
+ - git
+ - gcc
+ - gcc-c++
+ - kernel-devel
+ - make
+ - libxslt-devel
+ - python-devel
+ - python-virtualenv
+ - python-babel
+ - zlib-devel
+ - libffi-devel
+ - openssl-devel
+ - nginx
+
+__nginx_vhost_path: /etc/nginx/conf.d
diff --git a/searx/vars/RedHat-8.yml b/searx/vars/RedHat-8.yml
@@ -0,0 +1,17 @@
+---
+__searx_dependencies:
+ - git
+ - gcc
+ - gcc-c++
+ - kernel-devel
+ - make
+ - libxslt-devel
+ - platform-python-devel
+ - python3-virtualenv
+ - python3-babel
+ - zlib-devel
+ - libffi-devel
+ - openssl-devel
+ - nginx
+
+__nginx_vhost_path: /etc/nginx/conf.d
diff --git a/searx/vars/Ubuntu-16.yml b/searx/vars/Ubuntu-16.yml
@@ -0,0 +1,16 @@
+---
+__searx_dependencies:
+ - git
+ - build-essential
+ - libxslt-dev
+ - python-dev
+ - virtualenv
+ - python-babel
+ - zlib1g-dev
+ - libffi-dev
+ - libssl-dev
+ - nginx
+ - uwsgi
+ - uwsgi-plugin-python3
+
+__nginx_vhost_path: /etc/nginx/sites-enabled
diff --git a/searx/vars/Ubuntu-18.yml b/searx/vars/Ubuntu-18.yml
@@ -0,0 +1,16 @@
+---
+__searx_dependencies:
+ - git
+ - build-essential
+ - libxslt-dev
+ - python-dev
+ - virtualenv
+ - python-babel
+ - zlib1g-dev
+ - libffi-dev
+ - libssl-dev
+ - nginx
+ - uwsgi
+ - uwsgi-plugin-python3
+
+__nginx_vhost_path: /etc/nginx/sites-enabled
diff --git a/searx/vars/Ubuntu-20.yml b/searx/vars/Ubuntu-20.yml
@@ -0,0 +1,16 @@
+---
+__searx_dependencies:
+ - git
+ - build-essential
+ - libxslt-dev
+ - python-dev
+ - virtualenv
+ - python-babel
+ - zlib1g-dev
+ - libffi-dev
+ - libssl-dev
+ - nginx
+ - uwsgi
+ - uwsgi-plugin-python3
+
+__nginx_vhost_path: /etc/nginx/sites-enabled
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.