From daa59bdba58b5396d989a753151e346b06a88876 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sat, 29 Mar 2025 09:30:08 -0500 Subject: [PATCH] r/useproxy: Configure dnf to use proxy Although running `dnf` from the command line works without explicitly configuring the proxy, because it inherits the environment variables set by PAM on login from the user's shell, the `dnf` Ansible module does not, as it does not inherit those variables. Thus, we need to explicitly configure the `proxy` setting in `dnf.conf` in order to be able to install packages via Ansible. Since `dnf` does not have separate settings for different protocols (e.g. HTTP, HTTPS, FTP), we need a way to specify which of the configured proxies to use if there are multiple. As such, the *useproxy* role will attempt to use the value of the `dnf_proxy` variable, if it is set, falling back to `yum_proxy` and finally `http_proxy`. This should cover most situations without any explicit configuration, but allows flexibility for other cases. --- roles/useproxy/tasks/main.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/roles/useproxy/tasks/main.yml b/roles/useproxy/tasks/main.yml index 049a7af..aeefa35 100644 --- a/roles/useproxy/tasks/main.yml +++ b/roles/useproxy/tasks/main.yml @@ -49,6 +49,16 @@ tags: - systemd +- name: ensure dnf is configured to use proxy + ini_file: + path: /etc/dnf/dnf.conf + section: main + option: proxy + value: '{{ dnf_proxy|d(yum_proxy|d(http_proxy)) }}' + state: present + tags: + - yum + - name: ensure yum repos are configured to use baseurl ini_file: path: /etc/yum.repos.d/{{ item.file }}.repo