nusenu / ansible-relayor

An Ansible Role for Tor Relay Operators
GNU General Public License v3.0
248 stars 43 forks source link

Failed to "Gather current kern.ipc.somaxconn setting" on FreeBSD 14.1 Release #246

Closed concpt closed 3 months ago

concpt commented 4 months ago

When I run my playbook to setup relays on my new FreeBSD server, it gives me an error that it can't find sysctl but I can run sysctl command perfectly fine when logged in.

The full traceback is: File "/tmp/ansible_ansible.legacy.command_payload_0otevaep/ansible_ansible.legacy.command_payload.zip/ansible/module_utils/basic.py", line 2022, in run_command cmd = subprocess.Popen(args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/local/lib/python3.11/subprocess.py", line 1955, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) fatal: [hms9]: FAILED! => { "changed": false, "cmd": "sysctl -n kern.ipc.somaxconn", "invocation": { "module_args": { "_raw_params": "sysctl -n kern.ipc.somaxconn", "_uses_shell": false, "argv": null, "chdir": null, "creates": null, "executable": null, "removes": null, "stdin": null, "stdin_add_newline": true, "strip_empty_ends": true } }, "msg": "[Errno 2] No such file or directory: b'sysctl'",

nusenu commented 3 months ago

Hi, FreeBSD 14.1 is not yet supported by this role but is expected to be supported in the future.

Please use the github issue template to report this issue.

concpt commented 3 months ago

Hmm, I get the same error with FreeBSD 14.0

nusenu commented 3 months ago

Thanks for reproducing it on FreeBSD 14.0 as well. Please answer all the questions from the issue template, the easiest way is to use the template. https://github.com/nusenu/ansible-relayor/blob/master/.github/ISSUE_TEMPLATE/Bug_report.md

concpt commented 3 months ago

ansible version - 2.14.3 ansible-relayor version - v24.0.0

Control Machine: Distro: Debian 12 Kernel: 6.1.0-21

Target Machine: FreeBSD 14.0-RELEASE amd64

Playbook Information:

- hosts: tworelays
  vars:
    tor_ContactInfo: concept@email.com
    tor_signingkeylifetime_days: 90
    tor_nickname: concept
    tor_gen_ciiss_proof_files: True
    tor_ciiss_proof_folder: ~/.ansible
  roles:
   - nusenu.relayor

Debug Info:


TASK [nusenu.relayor : Check for min. ansible version requirement] **********************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:3
ok: [frail-context -> 127.0.0.1] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [nusenu.relayor : Check for local requirements] ************************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:14
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: concept
<127.0.0.1> EXEC /bin/sh -c 'echo ~concept && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/concept/.ansible/tmp `"&& mkdir "` echo /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971 `" && echo ansible-tmp-1723603666.396677-926855-71131415597971="` echo /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971 `" ) && sleep 0'
Using module file /usr/lib/python3/dist-packages/ansible/modules/command.py
<127.0.0.1> PUT /home/concept/.ansible/tmp/ansible-local-9268364wde5m9q/tmpyw4c5r9i TO /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971/ /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python3 /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/concept/.ansible/tmp/ansible-tmp-1723603666.396677-926855-71131415597971/ > /dev/null 2>&1 && sleep 0'
ok: [frail-context -> 127.0.0.1] => {
    "changed": false,
    "cmd": "command -V /bin/bash && command -V \"tor\" && command -V openssl && command -V sort && command -V uniq && command -V wc && command -V cut && command -V xargs && command -V sed\n",
    "delta": "0:00:00.005533",
    "end": "2024-08-14 02:47:46.746398",
    "invocation": {
        "module_args": {
            "_raw_params": "command -V /bin/bash && command -V \"tor\" && command -V openssl && command -V sort && command -V uniq && command -V wc && command -V cut && command -V xargs && command -V sed\n",
            "_uses_shell": true,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true
        }
    },
    "msg": "",
    "rc": 0,
    "start": "2024-08-14 02:47:46.740865",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "/bin/bash is /bin/bash\ntor is /usr/bin/tor\nopenssl is /usr/bin/openssl\nsort is /usr/bin/sort\nuniq is /usr/bin/uniq\nwc is /usr/bin/wc\ncut is /usr/bin/cut\nxargs is /usr/bin/xargs\nsed is /usr/bin/sed",
    "stdout_lines": [
        "/bin/bash is /bin/bash",
        "tor is /usr/bin/tor",
        "openssl is /usr/bin/openssl",
        "sort is /usr/bin/sort",
        "uniq is /usr/bin/uniq",
        "wc is /usr/bin/wc",
        "cut is /usr/bin/cut",
        "xargs is /usr/bin/xargs",
        "sed is /usr/bin/sed"
    ]
}

TASK [nusenu.relayor : Ensure tor_ContactInfo is set] ***********************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:25
ok: [frail-context] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [nusenu.relayor : Ensure we do not create more than 8 instances per IP] ************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:33
ok: [frail-context] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [nusenu.relayor : Abort if we use a centralized/common DNS resolver (Google, Quad9, CloudFlare, OpenDNS, Level3). See https://torproject.org/relay-guide#DNSonExitRelays (Exits only)] *********
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:42
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : Set OS specific variables] ***************************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:53
ok: [frail-context] => {
    "ansible_facts": {
        "tor_ConfDir": "/usr/local/etc/tor/enabled",
        "tor_DataDir": "/var/db/tor-instances",
        "tor_htpasswd_dependency": "py39-passlib",
        "tor_metricsport_htpasswd_file_owner": "www"
    },
    "ansible_included_var_files": [
        "/home/concept/.ansible/roles/nusenu.relayor/vars/os_FreeBSD.yml"
    ],
    "changed": false
}

TASK [nusenu.relayor : Use a single private IPv4 address if we have no public IPv4 address] *********************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/ip-list.yml:3
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : setup IP list (1/2)] *********************************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/ip-list.yml:7
ok: [frail-context] => (item=['5.161.183.108', None]) => {
    "ansible_facts": {
        "ips": {
            "ipv4": "5.161.183.108",
            "ipv6": ""
        }
    },
    "ansible_loop_var": "item",
    "changed": false,
    "item": [
        "5.161.183.108",
        null
    ]
}

TASK [nusenu.relayor : setup IP list (2/2)] *********************************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/ip-list.yml:17
ok: [frail-context] => {
    "ansible_facts": {
        "tor_ips": [
            {
                "ipv4": "5.161.183.108",
                "ipv6": ""
            }
        ]
    },
    "changed": false
}

TASK [nusenu.relayor : Preparation for Debian-based systems] ****************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:62
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : Preparation for RPM based systems] *******************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:69
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : Preparation for OpenBSD systems] *********************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:77
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : Preparation for FreeBSD based systems] ***************************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/main.yml:83
redirecting (type: modules) ansible.builtin.sysctl to ansible.posix.sysctl
redirecting (type: modules) ansible.builtin.sysctl to ansible.posix.sysctl
redirecting (type: modules) ansible.builtin.sysctl to ansible.posix.sysctl
included: /home/concept/.ansible/roles/nusenu.relayor/tasks/freebsd_prepare.yml for frail-context

TASK [nusenu.relayor : Choose tor alpha version package (FreeBSD)] **********************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/freebsd_prepare.yml:3
skipping: [frail-context] => {
    "changed": false,
    "skip_reason": "Conditional result was False"
}

TASK [nusenu.relayor : Ensure sequential IP IDs are avoided (FreeBSD)] ******************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/freebsd_prepare.yml:8
redirecting (type: modules) ansible.builtin.sysctl to ansible.posix.sysctl
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<frail-context> (0, b'/home/concept\n', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/concept/.ansible/tmp `"&& mkdir "` echo /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799 `" && echo ansible-tmp-1723603667.718272-926906-19814981492799="` echo /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799 `" ) && sleep 0'"'"''
<frail-context> (0, b'ansible-tmp-1723603667.718272-926906-19814981492799=/home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799\n', b'')
redirecting (type: modules) ansible.builtin.sysctl to ansible.posix.sysctl
Using module file /usr/lib/python3/dist-packages/ansible_collections/ansible/posix/plugins/modules/sysctl.py
<frail-context> PUT /home/concept/.ansible/tmp/ansible-local-9268364wde5m9q/tmpkrvykazf TO /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/AnsiballZ_sysctl.py
<frail-context> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' '[frail-context]'
<frail-context> (0, b'sftp> put /home/concept/.ansible/tmp/ansible-local-9268364wde5m9q/tmpkrvykazf /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/AnsiballZ_sysctl.py\n', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'chmod u+x /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/ /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/AnsiballZ_sysctl.py && sleep 0'"'"''
<frail-context> (0, b'', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' -tt frail-context '/bin/sh -c '"'"'sudo -H -S -p "[sudo via ansible, key=yajpzexnnxfulwxeymvjcvmtddtocmcp] password:" -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-yajpzexnnxfulwxeymvjcvmtddtocmcp ; /usr/local/bin/python3.9 /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/AnsiballZ_sysctl.py'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<frail-context> (0, b'\r\n{"changed": false, "invocation": {"module_args": {"name": "net.inet.ip.random_id", "value": "1", "reload": false, "sysctl_set": true, "state": "present", "ignoreerrors": false, "sysctl_file": "/etc/sysctl.conf"}}}\r\n', b'Shared connection to frail-context closed.\r\n')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'rm -f -r /home/concept/.ansible/tmp/ansible-tmp-1723603667.718272-926906-19814981492799/ > /dev/null 2>&1 && sleep 0'"'"''
<frail-context> (0, b'', b'')
ok: [frail-context] => {
    "changed": false,
    "invocation": {
        "module_args": {
            "ignoreerrors": false,
            "name": "net.inet.ip.random_id",
            "reload": false,
            "state": "present",
            "sysctl_file": "/etc/sysctl.conf",
            "sysctl_set": true,
            "value": "1"
        }
    }
}

TASK [nusenu.relayor : Gather current kern.ipc.somaxconn setting (FreeBSD)] *************************************************************************************************************************
task path: /home/concept/.ansible/roles/nusenu.relayor/tasks/freebsd_prepare.yml:16
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<frail-context> (0, b'/home/concept\n', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /home/concept/.ansible/tmp `"&& mkdir "` echo /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361 `" && echo ansible-tmp-1723603668.931367-926915-238985870283361="` echo /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361 `" ) && sleep 0'"'"''
<frail-context> (0, b'ansible-tmp-1723603668.931367-926915-238985870283361=/home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361\n', b'')
Using module file /usr/lib/python3/dist-packages/ansible/modules/command.py
<frail-context> PUT /home/concept/.ansible/tmp/ansible-local-9268364wde5m9q/tmpzjg7e22x TO /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/AnsiballZ_command.py
<frail-context> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' '[frail-context]'
<frail-context> (0, b'sftp> put /home/concept/.ansible/tmp/ansible-local-9268364wde5m9q/tmpzjg7e22x /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/AnsiballZ_command.py\n', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'chmod u+x /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/ /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/AnsiballZ_command.py && sleep 0'"'"''
<frail-context> (0, b'', b'')
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' -tt frail-context '/bin/sh -c '"'"'/usr/local/bin/python3.9 /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/AnsiballZ_command.py && sleep 0'"'"''
<frail-context> (1, b'\r\n{"rc": 2, "stdout": "", "stderr": "", "cmd": "sysctl -n kern.ipc.somaxconn", "failed": true, "msg": "[Errno 2] No such file or directory: b\'sysctl\'", "exception": "  File \\"/tmp/ansible_ansible.legacy.command_payload_fve2r5dz/ansible_ansible.legacy.command_payload.zip/ansible/module_utils/basic.py\\", line 2022, in run_command\\n    cmd = subprocess.Popen(args, **kwargs)\\n  File \\"/usr/local/lib/python3.9/subprocess.py\\", line 951, in __init__\\n    self._execute_child(args, executable, preexec_fn, close_fds,\\n  File \\"/usr/local/lib/python3.9/subprocess.py\\", line 1837, in _execute_child\\n    raise child_exception_type(errno_num, err_msg, err_filename)\\n", "invocation": {"module_args": {"_raw_params": "sysctl -n kern.ipc.somaxconn", "_uses_shell": false, "stdin_add_newline": true, "strip_empty_ends": true, "argv": null, "chdir": null, "executable": null, "creates": null, "removes": null, "stdin": null}}}\r\n', b'Shared connection to frail-context closed.\r\n')
<frail-context> Failed to connect to the host via ssh: Shared connection to frail-context closed.
<frail-context> ESTABLISH SSH CONNECTION FOR USER: None
<frail-context> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o 'ControlPath="/home/concept/.ansible/cp/c447d132c6"' frail-context '/bin/sh -c '"'"'rm -f -r /home/concept/.ansible/tmp/ansible-tmp-1723603668.931367-926915-238985870283361/ > /dev/null 2>&1 && sleep 0'"'"''
<frail-context> (0, b'', b'')
The full traceback is:
  File "/tmp/ansible_ansible.legacy.command_payload_fve2r5dz/ansible_ansible.legacy.command_payload.zip/ansible/module_utils/basic.py", line 2022, in run_command
    cmd = subprocess.Popen(args, **kwargs)
  File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/local/lib/python3.9/subprocess.py", line 1837, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
fatal: [frail-context]: FAILED! => {
    "changed": false,
    "cmd": "sysctl -n kern.ipc.somaxconn",
    "invocation": {
        "module_args": {
            "_raw_params": "sysctl -n kern.ipc.somaxconn",
            "_uses_shell": false,
            "argv": null,
            "chdir": null,
            "creates": null,
            "executable": null,
            "removes": null,
            "stdin": null,
            "stdin_add_newline": true,
            "strip_empty_ends": true
        }
    },
    "msg": "[Errno 2] No such file or directory: b'sysctl'",
    "rc": 2,
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}
nusenu commented 3 months ago

concpt:

ansible version - 2.14.3

This ansible version is lower than the required ansible version.

What output does this command produce on your FreeBSD 14.0 server?

which sysctl

concpt commented 3 months ago

Regarding the ansible version, I was using the debian package so it was out of date. I have now updated it to 2.17.3

Here is the output:

concept@frail-context:~ $ which sysctl
/sbin/sysctl
nusenu commented 3 months ago

This branch might solve your issue: https://github.com/nusenu/ansible-relayor/tree/i246_sysctl_freebsd

It has only a single change in it: https://github.com/nusenu/ansible-relayor/compare/master...i246_sysctl_freebsd

Can you test and confirm it solves your issue?

concpt commented 3 months ago

It works, thank you!