ipsilon: Initial version of role
This commit is contained in:
parent
0be436e8b0
commit
fb3608fa6e
5 changed files with 128 additions and 0 deletions
18
roles/ipsilon/handlers/main.yml
Normal file
18
roles/ipsilon/handlers/main.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
- name: Rebuild ipsilon-container
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- podman
|
||||
- build
|
||||
- -t
|
||||
- ipsilon
|
||||
- /usr/local/src/docker-ipsilon
|
||||
become: true
|
||||
become_user: ipsilon
|
||||
notify: Restart ipsilon-container
|
||||
|
||||
- name: Restart ipsilon-container
|
||||
ansible.builtin.systemd:
|
||||
name: ipsilon-container
|
||||
daemon_reload: true
|
||||
state: restarted
|
5
roles/ipsilon/meta/main.yml
Normal file
5
roles/ipsilon/meta/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
dependencies:
|
||||
- {role: git}
|
||||
- {role: nginx}
|
||||
- {role: podman}
|
74
roles/ipsilon/tasks/main.yml
Normal file
74
roles/ipsilon/tasks/main.yml
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
- name: Create group
|
||||
ansible.builtin.group:
|
||||
name: ipsilon
|
||||
|
||||
- name: Create user
|
||||
ansible.builtin.user:
|
||||
name: ipsilon
|
||||
comment: Podman Ipsilon
|
||||
group: ipsilon
|
||||
shell: /sbin/nologin
|
||||
|
||||
- name: Enable user lingering
|
||||
ansible.builtin.command:
|
||||
argv:
|
||||
- loginctl
|
||||
- enable-linger
|
||||
- ipsilon
|
||||
creates: /var/lib/systemd/linger/ipsilon
|
||||
|
||||
- name: Copy host key
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ tls_private }}/ipsilon.key"
|
||||
src: "{{ tls_private }}/{{ inventory_hostname }}.key"
|
||||
mode: "0640"
|
||||
owner: root
|
||||
group: ipsilon
|
||||
remote_src: true
|
||||
|
||||
- name: Get container source
|
||||
ansible.builtin.git:
|
||||
dest: /usr/local/src/docker-ipsilon
|
||||
repo: https://github.com/foo-sh/docker-ipsilon.git
|
||||
update: true
|
||||
version: master
|
||||
notify: Rebuild ipsilon-container
|
||||
|
||||
- name: Create service file
|
||||
ansible.builtin.template:
|
||||
dest: /etc/systemd/system/ipsilon-container.service
|
||||
src: ipsilon-container.service.j2
|
||||
mode: "0644"
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: Restart ipsilon-container
|
||||
|
||||
- name: Create service config
|
||||
ansible.builtin.template:
|
||||
dest: /etc/sysconfig/ipsilon-container
|
||||
src: ipsilon-container.sysconfig.j2
|
||||
mode: "0600"
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: Restart ipsilon-container
|
||||
|
||||
- name: Enable service
|
||||
ansible.builtin.service:
|
||||
name: ipsilon-container
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
- name: Copy nginx config
|
||||
ansible.builtin.copy:
|
||||
dest: "/etc/nginx/conf.d/{{ inventory_hostname }}/ipsilon-container.conf"
|
||||
content: |
|
||||
location /ipsilon {
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host idp.foo.sh;
|
||||
proxy_pass http://127.0.0.1:8011/;
|
||||
}
|
||||
mode: "0644"
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
notify: Restart nginx
|
21
roles/ipsilon/templates/ipsilon-container.service.j2
Normal file
21
roles/ipsilon/templates/ipsilon-container.service.j2
Normal file
|
@ -0,0 +1,21 @@
|
|||
[Unit]
|
||||
Description=Ipsilon Container
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User=ipsilon
|
||||
EnvironmentFile=/etc/sysconfig/ipsilon-container
|
||||
ExecStart=/usr/bin/podman run \
|
||||
--rm -p 127.0.0.1:8011:80 \
|
||||
--name ipsilon \
|
||||
--env LDAP_* --env IPSILON_*\
|
||||
--volume={{ tls_certs }}/ca.crt:/etc/ssl/certs/ca.crt:ro \
|
||||
--volume={{ tls_certs }}/{{ inventory_hostname }}.crt:/etc/ssl/certs/{{ inventory_hostname }}.crt:ro \
|
||||
--volume={{ tls_private }}/ipsilon.key:/etc/ssl/private/{{ inventory_hostname }}.key:ro \
|
||||
ipsilon:latest
|
||||
ExecStop=/usr/bin/podman stop --ignore ipsilon
|
||||
ExecStopPost=/usr/bin/podman rm -f --ignore ipsilon
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
10
roles/ipsilon/templates/ipsilon-container.sysconfig.j2
Normal file
10
roles/ipsilon/templates/ipsilon-container.sysconfig.j2
Normal file
|
@ -0,0 +1,10 @@
|
|||
LDAP_BASEDN="{{ ldap_basedn }}"
|
||||
IPSILON_DB_USER="ipsilon"
|
||||
IPSILON_DB_PASS="jFmMGUXsQgOuW9FE5ABX"
|
||||
IPSILON_DB_HOST="sqldb02.home.foo.sh"
|
||||
IPSILON_DB_USERPREFS="ipsilon"
|
||||
IPSILON_DB_TRANSACTIONS="ipsilon"
|
||||
IPSILON_DB_SESSIONS="ipsilon"
|
||||
IPSILON_DB_CA="/etc/ssl/certs/ca.crt"
|
||||
IPSILON_DB_KEY="/etc/ssl/private/{{ inventory_hostname }}.key"
|
||||
IPSILON_DB_CERT="/etc/ssl/certs/{{ inventory_hostname}}.crt"
|
Loading…
Add table
Reference in a new issue