diff --git a/src/roles/foreman/defaults/main.yaml b/src/roles/foreman/defaults/main.yaml index 419f4efec..fad6b1161 100644 --- a/src/roles/foreman/defaults/main.yaml +++ b/src/roles/foreman/defaults/main.yaml @@ -12,6 +12,7 @@ foreman_database_ssl_mode: disable foreman_database_ssl_ca: foreman_database_ssl_ca_path: /etc/foreman/db-ca.crt +foreman_name: "{{ ansible_facts['fqdn'] }}" foreman_url: "http://{{ ansible_facts['fqdn'] }}:3000" # Puma threads calculation: diff --git a/src/roles/foreman/templates/settings.yaml.j2 b/src/roles/foreman/templates/settings.yaml.j2 index 6799b5634..0cde4836c 100644 --- a/src/roles/foreman/templates/settings.yaml.j2 +++ b/src/roles/foreman/templates/settings.yaml.j2 @@ -1,4 +1,6 @@ --- +:domain: {{ ansible_facts['domain'] }} +:fqdn: {{ foreman_name }} :foreman_url: {{ foreman_url }} :ssl_certificate: /etc/foreman/client_cert.pem diff --git a/src/vars/base.yaml b/src/vars/base.yaml index 8c54bc097..99f4d3ea2 100644 --- a/src/vars/base.yaml +++ b/src/vars/base.yaml @@ -19,7 +19,8 @@ foreman_ca_certificate: "{{ ca_bundle }}" foreman_client_key: "{{ client_key }}" foreman_client_certificate: "{{ client_certificate }}" foreman_plugins: "{{ enabled_features | features_to_foreman_plugins }}" -foreman_url: "https://{{ ansible_facts['fqdn'] }}" +foreman_name: "{{ ansible_facts['fqdn'] }}" +foreman_url: "https://{{ foreman_name }}" httpd_server_ca_certificate: "{{ server_ca_certificate }}" httpd_client_ca_certificate: "{{ client_ca_certificate }}" diff --git a/tests/foreman_test.py b/tests/foreman_test.py index 2e7c88bad..00b8dcdfb 100644 --- a/tests/foreman_test.py +++ b/tests/foreman_test.py @@ -75,6 +75,20 @@ def test_foreman_recurring_services_exist(server, instance): service = server.service(f"foreman-recurring@{instance}.service") assert service.exists + def test_foreman_delivery_method_setting(foremanapi): delivery_method_setting = foremanapi.list('settings', search='name=delivery_method') assert delivery_method_setting[0]['value'] == 'smtp' + + +@pytest.mark.parametrize("setting", ["foreman_url", "unattended_url"]) +def test_foreman_fqdn_in_url_settings(foremanapi, server_fqdn, setting): + settings = foremanapi.list('settings', search=f'name={setting}') + assert server_fqdn in settings[0]['value'] + + +@pytest.mark.parametrize("setting", ["administrator", "email_reply_address"]) +def test_foreman_domain_in_mail_settings(foremanapi, server_fqdn, setting): + settings = foremanapi.list('settings', search=f'name={setting}') + domain = str.join('.', server_fqdn.split('.')[1:]) + assert domain in settings[0]['value']