521 Iocage plugins ansible-pull-syslogng-*
Use case
Configure and run a log server. Configure log clients and test them. Use syslog-ng. Clone the
iocage plugins ansible-pull-syslogng-server and ansible-pull-syslogng-client.
Tree
shell > tree .
.
├── ansible.cfg
├── group_vars
│ └── all
│ ├── common.yml
│ └── syslog-ng.yml
├── hosts
│ └── 05_iocage.yml
├── iocage.ini
├── pb-conf-logclient.yml
├── pb-create-jails.yml
├── pb-start-jails.yml
├── pb-test-logclient.yml
└── pb-test-logserv.yml
Synopsis
At a managed node:
In the playbook vbotka.freebsd.pb_iocage_plugins.yml fetch the iocage plugins:
ansible-pull-syslogng-serveransible-pull-syslogng-client
In the playbook
pb-create-jails.yml:Clone jails from the fetched iocage plugins
In the inventory group
log_servertest syslog-ng server.In the inventory group
log_clientconfigure and test syslog-ng client.
Requirements
-
ansible-pull-syslogng-serveransible-pull-syslogng-client
Configuration repositories for
ansible-pull:playbook vbotka.freebsd.pb_iocage_plugins.yml
Notes
Quoting syslog-ng - FreeBSD Wiki:
One of the most typical use of syslog-ng is central log aggregation. … It collects log messages on TCP port 514 and saves them to directories and files based on sender host name and current date.
Note
In this example, DHCP was provided by the iocage host. See 440 Configure DHCP and pf
ansible.cfg
[defaults]
callback_result_format = yaml
deprecation_warnings = false
display_skipped_hosts = false
gathering = explicit
interpreter_python = auto_silent
log_path = /var/log/ansible.log
[connection]
pipelining = true
Inventory iocage.ini
iocage_05
[iocage]
iocage_05
[iocage:vars]
ansible_user=admin
ansible_become=true
ansible_python_interpreter=auto_silent
hosts
plugin: vbotka.freebsd.iocage
host: iocage_05
user: admin
sudo: true
get_properties: true
inventory_hostname_tag: alias
compose:
iocage_tags: dict(iocage_properties.notes | regex_findall('(\w+)=([\w\-]+)'))
iocage_classes: iocage_properties.notes | regex_findall('class=([\w\-]+)')
# connection plugin vbotka.freebsd.jailexec
ansible_connection: "'vbotka.freebsd.jailexec'"
ansible_jail_host: dict(iocage_properties.notes | regex_findall('(\w+)=([\w\-]+)')).vmm | d('none')
ansible_jail_name: iocage_jid
ansible_jail_privilege_escalation: "'sudo'"
groups:
log_server: iocage_classes is contains('log-server')
log_client: iocage_classes is contains('log-client')
keyed_groups:
- prefix: state
key: iocage_state
- prefix: vmm
key: iocage_tags.vmm
group_vars
ansible_python_interpreter: auto_silent
enabled_plugins:
- ansible-pull-syslogng-client
- ansible-pull-syslogng-server
plugins:
ansible-pull-syslogng-client:
git: https://github.com/vbotka/iocage-plugins
branch: main
properties:
bpf: 1
dhcp: 1
vnet: 1
boot: 0
ansible-pull-syslogng-server:
git: https://github.com/vbotka/iocage-plugins
branch: main
properties:
bpf: 1
dhcp: 1
vnet: 1
boot: 0
# jail properties
properties:
bpf: 1
dhcp: 1
vnet: 1
type: jail
boot: 1
# log clients' aliases
log_clients:
- foo
- bar
Playbook output - Fetch iocage plugins
(env) > ansible-playbook vbotka.freebsd.pb_iocage_plugins.yml \
-i iocage.ini \
-t enabled_plugins \
-e debug=true
PLAY [Fetch and stop iocage plugins.] ******************************************
TASK [One tag is required.] ****************************************************
ok: [iocage_05]
TASK [Test the tag is known.] **************************************************
ok: [iocage_05]
TASK [Get already fetched plugins.] ********************************************
ok: [iocage_05]
TASK [Debug fetched plugins debug=true] ****************************************
ok: [iocage_05] =>
msg: |-
iocage_plugins:
ansible-syslogng:
boot: 'off'
doc_url: '-'
ip4: '-'
ip4_dict:
ip4: []
msg: DHCP (not running)
ip6: '-'
jid: None
portal: '-'
release: 15.0-RELEASE
state: down
template: '-'
type: pluginv2
ansible-zero:
boot: 'off'
doc_url: '-'
ip4: '-'
ip4_dict:
ip4: []
msg: DHCP (not running)
ip6: '-'
jid: None
portal: '-'
release: 15.0-RELEASE
state: down
template: '-'
type: pluginv2
plugins:
ansible-pull-syslogng-client:
branch: main
git: https://github.com/vbotka/iocage-plugins
properties:
boot: 0
bpf: 1
dhcp: 1
vnet: 1
ansible-pull-syslogng-server:
branch: main
git: https://github.com/vbotka/iocage-plugins
properties:
boot: 0
bpf: 1
dhcp: 1
vnet: 1
TASK [Set required plugins.] ***************************************************
ok: [iocage_05]
TASK [Debug selected plugins debug=true] ***************************************
ok: [iocage_05] =>
msg: |-
required_plugins:
- ansible-pull-syslogng-client
- ansible-pull-syslogng-server
selected_plugins:
- key: ansible-pull-syslogng-client
value:
branch: main
git: https://github.com/vbotka/iocage-plugins
properties:
boot: 0
bpf: 1
dhcp: 1
vnet: 1
- key: ansible-pull-syslogng-server
value:
branch: main
git: https://github.com/vbotka/iocage-plugins
properties:
boot: 0
bpf: 1
dhcp: 1
vnet: 1
TASK [Check all required plugins are included in the dictionary plugins.] ******
ok: [iocage_05]
TASK [Debug commands debug=true] ***********************************************
ok: [iocage_05] => (item=ansible-pull-syslogng-client) =>
msg: |-
iocage fetch --plugin-name ansible-pull-syslogng-client --git_repository https://github.com/vbotka/iocage-plugins --branch main boot=0 bpf=1 dhcp=1 vnet=1
ok: [iocage_05] => (item=ansible-pull-syslogng-server) =>
msg: |-
iocage fetch --plugin-name ansible-pull-syslogng-server --git_repository https://github.com/vbotka/iocage-plugins --branch main boot=0 bpf=1 dhcp=1 vnet=1
TASK [Fetch enabled plugins.] **************************************************
ok: [iocage_05] => (item=ansible-pull-syslogng-client)
ok: [iocage_05] => (item=ansible-pull-syslogng-server)
TASK [Stop fetched plugins.] ***************************************************
ok: [iocage_05]
PLAY RECAP *********************************************************************
iocage_05 : ok=10 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
List iocage plugins
shell > ssh admin@iocage_05 sudo iocage list -P
+------+------------------------------+------+-------+----------+--------------+--------------------+-----+----------+--------+---------+
| JID | NAME | BOOT | STATE | TYPE | RELEASE | IP4 | IP6 | TEMPLATE | PORTAL | DOC_URL |
+======+==============================+======+=======+==========+==============+====================+=====+==========+========+=========+
| None | ansible-pull-syslogng-client | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | - | - |
+------+------------------------------+------+-------+----------+--------------+--------------------+-----+----------+--------+---------+
| None | ansible-pull-syslogng-server | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | - | - |
+------+------------------------------+------+-------+----------+--------------+--------------------+-----+----------+--------+---------+
| None | ansible-syslogng | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | - | - |
+------+------------------------------+------+-------+----------+--------------+--------------------+-----+----------+--------+---------+
| None | ansible-zero | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | - | - |
+------+------------------------------+------+-------+----------+--------------+--------------------+-----+----------+--------+---------+
Playbook pb-create-jails.yml
---
- name: Create jails from iocage plugins.
hosts: iocage_05
tasks:
- name: Create syslog-ng server.
vars:
_notes: >
"vmm={{ inventory_hostname }}
class=log-server
alias=log-server"
ansible.builtin.command: >
iocage clone
ansible-pull-syslogng-server
--newmac
{{ properties | dictsort | map('join', '=') | join(' ') }}
notes={{ _notes }}
- name: Create syslog-clients.
vars:
_notes: >
"vmm={{ inventory_hostname }}
class=log-client
alias={{ item }}"
ansible.builtin.command: >
iocage clone
ansible-pull-syslogng-client
--newmac
{{ properties | dictsort | map('join', '=') | join(' ') }}
notes={{ _notes }}
loop: "{{ log_clients }}"
Playbook output - Create jails from iocage plugins
(env) > ansible-playbook pb-create-jails.yml.yml -i iocage.ini
PLAY [Create jails from iocage plugins.] ***************************************
TASK [Create syslog-ng server.] ************************************************
changed: [iocage_05]
TASK [Create syslog-clients.] **************************************************
changed: [iocage_05] => (item=foo)
changed: [iocage_05] => (item=bar)
PLAY RECAP *********************************************************************
iocage_05 : ok=2 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Inventory graph
shell > ansible-inventory -i hosts --graph
@all:
|--@ungrouped:
|--@state_down:
| |--ansible-pull-syslogng-client
| |--ansible-pull-syslogng-server
| |--ansible-syslogng
| |--ansible-zero
|--@log_client:
| |--foo
| |--bar
|--@state_up:
| |--foo
| |--log-server
| |--bar
|--@vmm_iocage_05:
| |--foo
| |--log-server
| |--bar
|--@log_server:
| |--log-server
Playbook pb-start-jails.yml
---
- name: Start jails.
hosts: iocage_05
vars:
start_jails: "{{ (groups.log_server + groups.log_client) | intersect(groups.state_down) }}"
start_uuid: "{{ start_jails | map('extract', hostvars, ['iocage_properties', 'host_hostuuid']) }}"
tasks:
- name: Display groups.
when: debug | d(false) | bool
ansible.builtin.debug:
msg: |
log_server: {{ groups.log_server }}
log_client: {{ groups.log_client }}
state_down:
{{ groups.state_down | to_nice_yaml | indent(2) }}
- name: Display jails that shall be started.
when: debug | d(false) | bool
ansible.builtin.debug:
msg: |
start_jails: {{ start_jails }}
start_uuid:
{{ start_uuid | to_nice_yaml | indent(2) }}
- name: Start jails.
when: start_uuid | length > 0
ansible.builtin.command: >
iocage start
{{ start_uuid | join(' ') }}
Playbook output - Start jails
(env) > ansible-playbook pb-start-jails.yml -i hosts -i iocage.ini -e debug=true
PLAY [Start jails.] ************************************************************
TASK [Display groups.] *********************************************************
ok: [iocage_05] =>
msg: |-
log_server: ['log-server']
log_client: ['foo', 'bar']
state_down:
- ansible-pull-syslogng-client
- ansible-pull-syslogng-server
- ansible-syslogng
- ansible-zero
TASK [Display jails that shall be started.] ************************************
ok: [iocage_05] =>
msg: |-
start_jails: []
start_uuid:
[]
PLAY RECAP *********************************************************************
iocage_05 : ok=2 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
Playbook pb-conf-logclient.yml
---
- name: Configure, enable, and start Log Clients.
hosts: log_client
vars:
log_server: "{{ hostvars['log-server']['iocage_ip4'] }}"
tasks:
- name: Display vars.
when: debug | d(false) | bool
run_once: true
ansible.builtin.debug:
msg: |
log_server: {{ log_server }}
log_client: {{ groups.log_client }}
- name: Configure LOG_SERVER
ansible.builtin.lineinfile:
dest: /usr/local/etc/syslog-ng.conf
regexp: ^(.*)LOG_SERVER(.*)$
line: '\g<1>{{ log_server }}\g<2>'
backrefs: true
backup: true
validate: syslog-ng --syntax-only --cfgfile %s
- name: Enable syslog-ng
community.general.sysrc:
name: syslog_ng_enable
value: 'YES'
- name: Start syslog-ng
vbotka.freebsd.service:
script: syslog-ng
command: start
Note
The configuration file /usr/local/etc/syslog-ng.conf, created by the iocage plugin
ansible-pull-syslogng-client from the repo ansible-conf-syslogng-client, keeps the string
LOG_SERVER in the place of the log-server IP. The above play replaces this string with the
log-server IP.
Playbook output - Configure, enable, and start Log Clients
(env) > ansible-playbook pb-conf-logclient.yml -i hosts -i iocage.ini -e debug=true
PLAY [Configure, enable, and start Log Clients.] *******************************
TASK [Display vars.] ***********************************************************
ok: [foo] =>
msg: |-
log_server: 10.10.99.178
log_client: ['foo', 'bar']
TASK [Configure LOG_SERVER] ****************************************************
changed: [bar]
changed: [foo]
TASK [Enable syslog-ng] ********************************************************
changed: [foo]
changed: [bar]
TASK [Start syslog-ng] *********************************************************
changed: [foo]
changed: [bar]
PLAY RECAP *********************************************************************
bar : ok=3 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
foo : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
List jails
shell > ssh admin@iocage_05 sudo iocage list -l
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| JID | NAME | BOOT | STATE | TYPE | RELEASE | IP4 | IP6 | TEMPLATE | BASEJAIL |
+======+======================================+======+=======+==========+==============+======================+=====+==============================+==========+
| 78 | 377cba47-d8cd-4ce2-9002-65355b66feb4 | on | up | jail | 15.0-RELEASE | epair0b|10.10.99.179 | - | ansible-pull-syslogng-client | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| 77 | 51ce8511-9da1-45e7-a3c8-012376ef8c87 | on | up | jail | 15.0-RELEASE | epair0b|10.10.99.178 | - | ansible-pull-syslogng-server | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| None | ansible-pull-syslogng-client | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| None | ansible-pull-syslogng-server | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| None | ansible-syslogng | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| None | ansible-zero | off | down | pluginv2 | 15.0-RELEASE | DHCP (not running) | - | - | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
| 79 | be86d9eb-8bb9-4e11-8619-ae92f77d8cd6 | on | up | jail | 15.0-RELEASE | epair0b|10.10.99.169 | - | ansible-pull-syslogng-client | yes |
+------+--------------------------------------+------+-------+----------+--------------+----------------------+-----+------------------------------+----------+
Playbook pb-test-logserv.yml
- name: Test Log Server.
hosts: log_server
tasks:
- name: Run commands.
register: out
ansible.builtin.shell: "{{ item }}"
loop:
- rm -rf /var/log/remote/localhost/*
- service syslog-ng status
- loggen -i -S -n 1 localhost 514
- sleep 2; find /var/log/remote/localhost/ -name *.log | xargs cat
- name: Debug.
when: debug | d(false) | bool
ansible.builtin.debug:
msg: |
{% for i in out.results %}
shell> {{ i.item }}
{% if i.stdout | length > 0 %}
{{ i.stdout }}
{% endif %}
{% if i.stderr | length > 0 %}
{{ i.stderr }}
{% endif %}
{% endfor %}
Playbook output - Test Log Server
(env) > ansible-playbook pb-test-logserv.yml -i hosts -e debug=true
PLAY [Test Log Server.] ********************************************************
TASK [Run commands.] ***********************************************************
changed: [log-server] => (item=rm -rf /var/log/remote/localhost/*)
changed: [log-server] => (item=service syslog-ng status)
changed: [log-server] => (item=loggen -i -S -n 1 localhost 514)
changed: [log-server] => (item=sleep 2; find /var/log/remote/localhost/ -name *.log | xargs cat)
TASK [Debug.] ******************************************************************
ok: [log-server] =>
msg: |-
shell> rm -rf /var/log/remote/localhost/*
shell> service syslog-ng status
syslog_ng is running as pid 76667.
shell> loggen -i -S -n 1 localhost 514
count=1, rate = 125000.00 msg/sec
average rate = 2.00 msg/sec, count=1, time=0.500373, (average) msg size=256, bandwidth=0.50 kB/sec
shell> sleep 2; find /var/log/remote/localhost/ -name *.log | xargs cat
PLAY RECAP *********************************************************************
log-server : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Playbook pb-test-logclient.yml
- name: Test Log Clients.
hosts: log_client
vars:
log_server: "{{ hostvars['log-server']['iocage_ip4'] }}"
tasks:
- name: Run loggen
register: out
ansible.builtin.command: "loggen -i -S -n 1 {{ log_server }} 514"
- name: Debug.
ansible.builtin.debug:
var: out.stderr
- name: Display the logs.
hosts: log_server
tasks:
- name: Get log files paths.
register: out
ansible.builtin.find:
paths: /var/log/remote
recurse: true
patterns: '*.log'
- name: Get log files.
register: out
ansible.builtin.command: "cat {{ item }}"
loop: "{{ out.files | map(attribute='path') }}"
- name: Display log files.
ansible.builtin.debug:
msg: |
{{ item.stdout }}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
loop: "{{ out.results }}"
loop_control:
label: "{{ item.cmd }}"
Playbook output - Test Log Clients
(env) > ansible-playbook pb-test-logclient.yml -i hosts
PLAY [Test Log Clients.] *******************************************************
TASK [Run loggen] **************************************************************
changed: [bar]
changed: [foo]
TASK [Debug.] ******************************************************************
ok: [foo] =>
out.stderr: |-
count=1, rate = 26315.79 msg/sec
average rate = 2.00 msg/sec, count=1, time=0.50045, (average) msg size=256, bandwidth=0.50 kB/sec
ok: [bar] =>
out.stderr: |-
count=1, rate = 30303.03 msg/sec
average rate = 2.00 msg/sec, count=1, time=0.500337, (average) msg size=256, bandwidth=0.50 kB/sec
PLAY [Display the logs.] *******************************************************
TASK [Get log files paths.] ****************************************************
ok: [log-server]
TASK [Get log files.] **********************************************************
changed: [log-server] => (item=/var/log/remote/10.10.99.179/2026_05_13.log)
changed: [log-server] => (item=/var/log/remote/10.10.99.169/2026_05_13.log)
TASK [Display log files.] ******************************************************
ok: [log-server] => (item=['cat', '/var/log/remote/10.10.99.179/2026_05_13.log']) =>
msg: |-
May 13 16:09:19 10.10.99.179 syslog-ng[79791]: syslog-ng starting up; version='4.11.0'
May 13 16:09:19 10.10.99.179 syslog-ng[79791]: Syslog connection established; fd='19', server='AF_INET(10.10.99.178:514)', local='AF_INET(0.0.0.0:0)'
May 13 16:05:38 10.10.99.179 ansible: n=ansible WARNING| [WARNING]: Could not match supplied host pattern, ignoring: ansible-pull-
May 13 16:09:20 10.10.99.179 ansible:
May 13 16:05:39 10.10.99.179 ansible: n=ansible INFO| PLAY [Configure Log Client.] ***************************************************
May 13 16:05:40 10.10.99.179 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Rcconf: Configure syslogd_enable in /etc/rc.conf] ***
May 13 16:05:40 10.10.99.179 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:40 10.10.99.179 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Syslog-ng: Sanity fp_syslogng_conf is empty.] ***
May 13 16:05:40 10.10.99.179 ansible: n=ansible INFO| ok: [localhost.my.domain]
May 13 16:05:41 10.10.99.179 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Syslog-ng: Configure /usr/local/etc/syslog-ng.conf] ***
May 13 16:05:41 10.10.99.179 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:41 10.10.99.179 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Rcconf: Configure syslog_ng_enable in /etc/rc.conf] ***
May 13 16:05:41 10.10.99.179 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:42 10.10.99.179 ansible: n=ansible INFO| RUNNING HANDLER [vbotka.freebsd.postinstall : Stop syslog-ng] ******************
May 13 16:05:42 10.10.99.179 ansible: n=ansible INFO| ok: [localhost.my.domain]
May 13 16:05:43 10.10.99.179 ansible: n=ansible INFO| RUNNING HANDLER [vbotka.freebsd.postinstall : Stop syslogd] ********************
May 13 16:05:43 10.10.99.179 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:43 10.10.99.179 ansible: n=ansible INFO| PLAY RECAP *********************************************************************
May 13 16:05:43 10.10.99.179 ansible: n=ansible INFO| localhost.my.domain : ok=6 changed=4 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0
May 13 16:09:40 10.10.99.179 1 2026-05-13T16:09:40.022917+02:00 377cba47-d8cd-4ce2-9002-65355b66feb4 ansible-ansible.legacy.command 80380 - - Invoked with _raw_params=loggen -i -S -n 1 10.10.99.178 514 _uses_shell=False expand_argument_vars=True stdin_add_newline=True strip_empty_ends=True cmd=None argv=None chdir=None executable=None creates=None removes=None stdin=None
May 13 16:09:40 10.10.99.179 prg00000[1234]: seq: 0000000000, thread: 0000, runid: 1778681380, stamp: 2026-05-13T16:09:40 PADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ok: [log-server] => (item=['cat', '/var/log/remote/10.10.99.169/2026_05_13.log']) =>
msg: |-
May 13 16:09:19 10.10.99.169 syslog-ng[79792]: syslog-ng starting up; version='4.11.0'
May 13 16:09:19 10.10.99.169 syslog-ng[79792]: Syslog connection established; fd='19', server='AF_INET(10.10.99.178:514)', local='AF_INET(0.0.0.0:0)'
May 13 16:05:38 10.10.99.169 ansible: n=ansible WARNING| [WARNING]: Could not match supplied host pattern, ignoring: ansible-pull-
May 13 16:09:20 10.10.99.169 ansible:
May 13 16:05:39 10.10.99.169 ansible: n=ansible INFO| PLAY [Configure Log Client.] ***************************************************
May 13 16:05:40 10.10.99.169 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Rcconf: Configure syslogd_enable in /etc/rc.conf] ***
May 13 16:05:40 10.10.99.169 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:40 10.10.99.169 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Syslog-ng: Sanity fp_syslogng_conf is empty.] ***
May 13 16:05:40 10.10.99.169 ansible: n=ansible INFO| ok: [localhost.my.domain]
May 13 16:05:41 10.10.99.169 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Syslog-ng: Configure /usr/local/etc/syslog-ng.conf] ***
May 13 16:05:41 10.10.99.169 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:41 10.10.99.169 ansible: n=ansible INFO| TASK [vbotka.freebsd.postinstall : Rcconf: Configure syslog_ng_enable in /etc/rc.conf] ***
May 13 16:05:41 10.10.99.169 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:42 10.10.99.169 ansible: n=ansible INFO| RUNNING HANDLER [vbotka.freebsd.postinstall : Stop syslog-ng] ******************
May 13 16:05:42 10.10.99.169 ansible: n=ansible INFO| ok: [localhost.my.domain]
May 13 16:05:43 10.10.99.169 ansible: n=ansible INFO| RUNNING HANDLER [vbotka.freebsd.postinstall : Stop syslogd] ********************
May 13 16:05:43 10.10.99.169 ansible: n=ansible INFO| changed: [localhost.my.domain]
May 13 16:05:43 10.10.99.169 ansible: n=ansible INFO| PLAY RECAP *********************************************************************
May 13 16:05:43 10.10.99.169 ansible: n=ansible INFO| localhost.my.domain : ok=6 changed=4 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0
May 13 16:09:40 10.10.99.169 1 2026-05-13T16:09:40.027179+02:00 be86d9eb-8bb9-4e11-8619-ae92f77d8cd6 ansible-ansible.legacy.command 80379 - - Invoked with _raw_params=loggen -i -S -n 1 10.10.99.178 514 _uses_shell=False expand_argument_vars=True stdin_add_newline=True strip_empty_ends=True cmd=None argv=None chdir=None executable=None creates=None removes=None stdin=None
May 13 16:09:40 10.10.99.169 prg00000[1234]: seq: 0000000000, thread: 0000, runid: 1778681380, stamp: 2026-05-13T16:09:40 PADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADDPADD
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PLAY RECAP *********************************************************************
bar : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
foo : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
log-server : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Hint
Use the utility lnav on the log server to display all logfiles in the the directory
/var/log/remote
shell > lnav -r /var/log/remote/