---
- hosts: bulletinboard
become: true
become_method: sudo
become_user:
vars:
httptest_user_www: "/home/httptest/www"
vars_prompt:
- name: httptest_password
prompt: "Enter httptest Password: "
private: true
encrypt: sha512_crypt
confirm: true
salt_size: 7
tasks:
- name: Create httptest user
ansible.builtin.user:
name: httptest
password: "{{ httptest_password }}"
comment: "Podman user for httpd test host"
uid: 2000
- name: Make .bashrc.d directory for httptest user
ansible.builtin.file:
path: /home/httptest/.bashrc.d
owner: httptest
group: httptest
mode: "0750"
state: directory
- name: Set XDG_RUNTIME_DIR var for httptest user
ansible.builtin.lineinfile:
path: /home/httptest/.bashrc.d/systemd
owner: httptest
group: httptest
mode: "0750"
line: "export XDG_RUNTIME_DIR=/run/user/2000"
create: true
- name: Allow httptest user to linger
ansible.builtin.shell:
cmd: "loginctl enable-linger 2000"
- name: Make www directory for httptest user
ansible.builtin.file:
path: "{{ httptest_user_www }}"
owner: httptest
group: httptest
mode: "0755"
state: directory
- name: Make index.html file
ansible.builtin.lineinfile:
path: "{{ httptest_user_www }}/index.html"
owner: httptest
group: httptest
mode: "0644"
line: "
TEST
"
create: true
- name: Write subuid user entry for httptest
ansible.builtin.lineinfile:
path: /etc/subuid
line: "httptest:100000:2000"
insertafter: EOF
create: true
state: present
- name: Write subgid user entry for httptest
ansible.builtin.lineinfile:
path: /etc/subgid
line: "httptest:100000:2000"
insertafter: EOF
create: true
state: present
- name: Configure firewalld for httpd
ansible.posix.firewalld:
port: "8080/tcp"
state: enabled
permanent: true
immediate: true
- name: Build httpd quadlet
containers.podman.podman_container:
name: httptest
image: "docker.io/library/httpd:latest"
state: quadlet
quadlet_filename: "httptest-quadlet"
quadlet_file_mode: "0640"
rm: false
ports: 8080:80
volumes:
- "{{ httptest_user_www }}:/usr/local/apache2/htdocs:Z"
quadlet_options:
- "AutoUpdate=registry"
- "Pull=newer"
- |
[Install]
WantedBy=default.target
- |
[Unit]
Description=httpd Test Quadlet
After=home.mount
become_user: "httptest"
- name: Run systemctl --user daemon-reload
ansible.builtin.systemd_service:
daemon_reload: true
scope: user
become_user: "httptest"
- name: Run systemctl --user start for httptest-quadlet
ansible.builtin.systemd_service:
name: "httptest-quadlet.service"
scope: user
state: started
become_user: "httptest"