--- - name: Fix Nomad server network configuration hosts: nomad_servers become: yes vars: server_ips: semaphore: "100.116.158.95" ash2e: "100.103.147.94" ash1d: "100.81.26.3" ch2: "100.90.159.68" ch3: "100.86.141.112" tasks: - name: Stop Nomad service systemd: name: nomad state: stopped - name: Get server IP for this host set_fact: server_ip: "{{ server_ips[inventory_hostname] }}" - name: Create corrected server configuration copy: content: | datacenter = "{{ nomad_datacenter }}" region = "{{ nomad_region }}" data_dir = "/opt/nomad/data" bind_addr = "{{ server_ip }}" server { enabled = true bootstrap_expect = {{ nomad_bootstrap_expect }} encrypt = "{{ nomad_encrypt_key }}" retry_join = [ "100.116.158.95", "100.103.147.94", "100.81.26.3", "100.90.159.68", "100.86.141.112" ] } client { enabled = true } ui { enabled = true } addresses { http = "0.0.0.0" rpc = "{{ server_ip }}" serf = "{{ server_ip }}" } ports { http = 4646 rpc = 4647 serf = 4648 } plugin "podman" { config { socket_path = "unix:///run/podman/podman.sock" volumes { enabled = true } recover_stopped = true } } consul { auto_advertise = false server_auto_join = false client_auto_join = false } log_level = "INFO" log_file = "/var/log/nomad/nomad.log" dest: /etc/nomad.d/nomad.hcl owner: nomad group: nomad mode: '0640' - name: Validate Nomad configuration shell: /usr/local/bin/nomad config validate /etc/nomad.d/nomad.hcl || /usr/bin/nomad config validate /etc/nomad.d/nomad.hcl register: config_validation failed_when: config_validation.rc != 0 - name: Start Nomad service systemd: name: nomad state: started enabled: yes - name: Wait for Nomad to be ready wait_for: port: 4646 host: localhost delay: 10 timeout: 60