mirror of
				https://git.lapiole.org/dani/ansible-roles.git
				synced 2025-11-03 20:31:26 +01:00 
			
		
		
		
	Update to 2021-12-01 19:13
This commit is contained in:
		
							
								
								
									
										8
									
								
								roles/journal_remote/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/journal_remote/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
journal_remote_port: 19532
 | 
			
		||||
journal_remote_src_ip: []
 | 
			
		||||
journal_remote_seal: False
 | 
			
		||||
# journal_remote_crt: /path/to/cert.pem
 | 
			
		||||
# journal_remote_key: /path/to/key.pem
 | 
			
		||||
# journal_remote_ca: /path/to/cacert.pem
 | 
			
		||||
							
								
								
									
										4
									
								
								roles/journal_remote/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/journal_remote/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: restart journal-remote
 | 
			
		||||
  service: name=systemd-journal-remote state=restarted
 | 
			
		||||
							
								
								
									
										49
									
								
								roles/journal_remote/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								roles/journal_remote/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
- name: Install the Journal gateway
 | 
			
		||||
  yum: name=systemd-journal-gateway
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Create journal storage directory
 | 
			
		||||
  file: path=/var/log/journal/remote state=directory owner=systemd-journal-remote group=systemd-journal-remote mode=700
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Override systemd unit
 | 
			
		||||
  template: src=systemd-journal-remote.service.j2 dest=/etc/systemd/system/systemd-journal-remote.service
 | 
			
		||||
  notify: restart journal-remote
 | 
			
		||||
  register: journal_remote_unit
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Reload systemd
 | 
			
		||||
  command: systemctl daemon-reload
 | 
			
		||||
  when: journal_remote_unit.changed
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Deploy journal-remote configuration
 | 
			
		||||
  template: src=journal-remote.conf.j2 dest=/etc/systemd/journal-remote.conf
 | 
			
		||||
  notify: restart journal-remote
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Create dehydrated hook dir
 | 
			
		||||
  file: path=/etc/dehydrated/hooks_deploy_cert.d/ state=directory
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Deploy dehydrated hooks
 | 
			
		||||
  template: src=dehydrated_hook.sh.j2 dest=/etc/dehydrated/hooks_deploy_cert.d/20journal-remote.sh mode=755
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Handle journal-remote ports
 | 
			
		||||
  iptables_raw:
 | 
			
		||||
    name: journal_remote_ports
 | 
			
		||||
    state: "{{ (journal_remote_src_ip | length > 0) | ternary('present','absent') }}"
 | 
			
		||||
    rules: "-A INPUT -m state --state NEW -p tcp -m multiport --dports {{ journal_remote_port }} -s {{ journal_remote_src_ip | join(',') }} -j ACCEPT"
 | 
			
		||||
  when: iptables_manage | default(True)
 | 
			
		||||
  tags: [firewall,logs]
 | 
			
		||||
 | 
			
		||||
- name: Disable journal-remote socket
 | 
			
		||||
  service: name=systemd-journal-remote.socket state=stopped enabled=False
 | 
			
		||||
  tags: logs
 | 
			
		||||
 | 
			
		||||
- name: Start journal-remote
 | 
			
		||||
  service: name=systemd-journal-remote state=started enabled=True
 | 
			
		||||
  tags: logs
 | 
			
		||||
							
								
								
									
										14
									
								
								roles/journal_remote/templates/dehydrated_hook.sh.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/journal_remote/templates/dehydrated_hook.sh.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
{% if journal_remote_letsencrypt_cert is defined %}
 | 
			
		||||
mkdir -p /etc/systemd/journal-remote-tls
 | 
			
		||||
chown systemd-journal-remote:systemd-journal-remote /etc/systemd/journal-remote-tls
 | 
			
		||||
chmod 700 /etc/systemd/journal-remote-tls
 | 
			
		||||
if [ -e /var/lib/dehydrated/certificates/certs/{{ journal_remote_letsencrypt_cert }}/privkey.pem ]; then
 | 
			
		||||
  cp -f /var/lib/dehydrated/certificates/certs/{{ journal_remote_letsencrypt_cert }}/privkey.pem /etc/systemd/journal-remote-tls/
 | 
			
		||||
  cp -f /var/lib/dehydrated/certificates/certs/{{ journal_remote_letsencrypt_cert }}/fullchain.pem /etc/systemd/journal-remote-tls/
 | 
			
		||||
  chown systemd-journal-remote:systemd-journal-remote /etc/systemd/journal-remote-tls/*
 | 
			
		||||
  chmod 600 /etc/systemd/journal-remote-tls/privkey.pem
 | 
			
		||||
  /sbin/service systemd-journal-remote restart
 | 
			
		||||
fi
 | 
			
		||||
{% endif %}
 | 
			
		||||
							
								
								
									
										14
									
								
								roles/journal_remote/templates/journal-remote.conf.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/journal_remote/templates/journal-remote.conf.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
[Remote]
 | 
			
		||||
Seal={{ journal_remote_seal | ternary(True,False) }}
 | 
			
		||||
SplitMode=host
 | 
			
		||||
{% if (journal_remote_crt is defined and journal_remote_key is defined) or journal_remote_letsencrypt_cert is defined %}
 | 
			
		||||
{% if journal_remote_crt is defined and journal_remote_key is defined %}
 | 
			
		||||
ServerKeyFile={{ journal_remote_key }}
 | 
			
		||||
ServerCertificateFile={{ journal_remote_cert }}
 | 
			
		||||
TrustedCertificateFile={{ journal_remote_ca | default('/etc/pki/tls/cert.pem') }}
 | 
			
		||||
{% else %}
 | 
			
		||||
ServerKeyFile=/etc/systemd/journal-remote-tls/privkey.pem
 | 
			
		||||
ServerCertificateFile=/etc/systemd/journal-remote-tls/fullchain.pem
 | 
			
		||||
TrustedCertificateFile=/etc/systemd/journal-remote-tls/fullchain.pem
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Journal Remote Sink Service
 | 
			
		||||
Requires=systemd-journal-remote.socket
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
ExecStart=/usr/lib/systemd/systemd-journal-remote \
 | 
			
		||||
          --listen-{{ ((journal_remote_crt is defined and journal_remote_key is defined) or journal_remote_letsencrypt_cert is defined) | ternary('https','http') }}={{ journal_remote_port }} \
 | 
			
		||||
          --output=/var/log/journal/remote/
 | 
			
		||||
User=systemd-journal-remote
 | 
			
		||||
Group=systemd-journal-remote
 | 
			
		||||
PrivateTmp=yes
 | 
			
		||||
PrivateDevices=yes
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
		Reference in New Issue
	
	Block a user