Initial import

This commit is contained in:
Frank Agerholm 2024-03-07 22:38:24 +01:00
commit c28551bb63
No known key found for this signature in database
22 changed files with 357 additions and 0 deletions

View file

@ -0,0 +1,2 @@
---
redis_clients_group: all

21
roles/redis/meta/main.yml Normal file
View file

@ -0,0 +1,21 @@
galaxy_info:
author: Frank Agerholm
description: Redis installation and Configuration
company: serverWG.de
issue_tracker_url: "https://git.serverwg.de/fager/ansible-demo-retwis/issues/new"
license: "GPL"
min_ansible_version: "2.11"
platforms:
- name: EL
versions:
- "7"
- "8"
- "9"
galaxy_tags: []
dependencies: []

View file

@ -0,0 +1,37 @@
---
- name: Install Redis Database
ansible.builtin.dnf:
name: redis
state: present
- name: Configure Redis to listen on all IPs
ansible.builtin.lineinfile:
path: /etc/redis/redis.conf
regexp: '^bind '
line: 'bind 0.0.0.0'
- name: Enable and start the redis service
ansible.builtin.service:
name: redis
state: started
enabled: true
- name: Gather facts from client systems
ansible.builtin.setup:
delegate_to: "{{ item }}"
delegate_facts: true
loop: "{{ groups[redis_clients_group] }}"
- name: Ensure Firewall is enabled
ansible.builtin.systemd:
name: firewalld.service
state: started
enabled: true
- name: Open the Firewall
ansible.posix.firewalld:
rich_rule: 'rule family="ipv4" source address="{{ item }}/32" port protocol="tcp" port="6379" accept'
permanent: true
state: enabled
immediate: true
loop: "{{ groups[redis_clients_group] | map('extract', hostvars, ['ansible_facts', 'default_ipv4', 'address']) | list }}"

View file

@ -0,0 +1,4 @@
---
retwis_download_tgz_url: "https://git.serverwg.de/fager/retwis/archive/1.0.tar.gz"
retwis_version: 1.0
redis_server_group: redis

View file

@ -0,0 +1,21 @@
galaxy_info:
author: Frank Agerholm
description: Retwis installation and Configuration
company: serverWg.de
issue_tracker_url: "https://git.serverwg.de/fager/ansible-demo-retwis/issues/new"
license: "GPL"
min_ansible_version: "2.11"
platforms:
- name: EL
versions:
- "7"
- "8"
- "9"
galaxy_tags: []
dependencies: []

View file

@ -0,0 +1,53 @@
---
- name: Download Retwis Application
ansible.builtin.get_url:
url: "{{ retwis_download_tgz_url }}"
dest: "/tmp/retwis-{{ retwis_version }}.tar.gz"
validate_certs: false
owner: root
group: root
mode: "0600"
tags:
- install
- name: Clean up document root
ansible.builtin.file:
path: "/var/www/html/app"
state: directory
mode: "0755"
loop:
- absent
- directory
tags:
- install
- name: Extract retwis software archive to documentroot
ansible.builtin.unarchive:
src: "/tmp/retwis-{{ retwis_version }}.tar.gz"
dest: /var/www/html/app
remote_src: true
extra_opts:
- --strip-components=1
- --directory=/var/www/html/app
tags:
- install
- name: Gather facts from redis server systems
ansible.builtin.setup:
delegate_to: "{{ item }}"
delegate_facts: true
loop: "{{ groups[redis_server_group] }}"
tags:
- install
- configure
- name: Deploy .htconfig template for Retwis Webapp configuration
ansible.builtin.template:
src: dot-htconfig.php
dest: /var/www/html/app/.htconfig.php
mode: "0644"
owner: apache
group: apache
tags:
- install
- configure

View file

@ -0,0 +1,6 @@
<?php
$redis_options["schema"] = "tcp";
$redis_options["host"] = "{{ groups[redis_server_group] | first }}";
$redis_options["port"] = 6379;
$retwis_title = "{{retwis_title|default('')}}";
?>

View file

@ -0,0 +1,11 @@
---
webserver_packages:
- httpd
- httpd-tools
- php
- php-fpm
- python3-libselinux
- python3-libsemanage
- tar
- zip

View file

@ -0,0 +1,3 @@
<?php
phpinfo();
?>

View file

@ -0,0 +1,6 @@
---
- name: Restart webserver
ansible.builtin.systemd:
name: httpd.service
state: restarted

View file

@ -0,0 +1,21 @@
galaxy_info:
author: Frank Agerholm
description: Webserver installation and Configuration
company: serverWg.de
issue_tracker_url: "https://git.serverwg.de/fager/ansible-demo-retwis/issues/new"
license: "GPL"
min_ansible_version: "2.11"
platforms:
- name: EL
versions:
- "7"
- "8"
- "9"
galaxy_tags: []
dependencies: []

View file

@ -0,0 +1,53 @@
---
- name: Install all required Packages
ansible.builtin.dnf:
name: "{{ webserver_packages }}"
state: present
- name: Ensure httpd is running
ansible.builtin.systemd:
name: httpd.service
state: started
enabled: true
- name: Ensure php-fpm is running
ansible.builtin.systemd:
name: php-fpm.service
state: started
enabled: true
- name: Set SELinux boolean httpd_can_network_connect to true
ansible.posix.seboolean:
name: httpd_can_network_connect
state: true
persistent: true
notify: Restart webserver
- name: Create start page
ansible.builtin.template:
src: index.html
dest: /var/www/html/index.html
owner: root
group: root
mode: "0644"
- name: Ensure Firewalld is running
ansible.builtin.systemd:
name: firewalld.service
state: started
enabled: true
- name: Open Port 80/tcp in Firewall
ansible.posix.firewalld:
service: http
permanent: true
immediate: true
state: enabled
- name: Copy phpinfo.php to DocumentRoot
ansible.builtin.copy:
src: phpinfo.php
dest: /var/www/html/phpinfo.php
owner: root
group: root
mode: "0644"