88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
---
|
|
- name: Fix Nomad systemd service binary path
|
|
hosts: nomad_cluster
|
|
become: yes
|
|
|
|
tasks:
|
|
- name: Check Nomad binary location
|
|
shell: which nomad
|
|
register: nomad_binary_path
|
|
|
|
- name: Display binary path
|
|
debug:
|
|
msg: "Nomad binary 位于: {{ nomad_binary_path.stdout }}"
|
|
|
|
- name: Stop Nomad service
|
|
systemd:
|
|
name: nomad
|
|
state: stopped
|
|
ignore_errors: yes
|
|
|
|
- name: Update Nomad systemd service with correct binary path
|
|
copy:
|
|
content: |
|
|
[Unit]
|
|
Description=Nomad
|
|
Documentation=https://www.nomadproject.io/
|
|
Requires=network-online.target
|
|
After=network-online.target
|
|
ConditionFileNotEmpty=/etc/nomad.d/nomad.hcl
|
|
|
|
[Service]
|
|
Type=notify
|
|
User=nomad
|
|
Group=nomad
|
|
ExecStart={{ nomad_binary_path.stdout }} agent -config=/etc/nomad.d/nomad.hcl
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
KillMode=process
|
|
Restart=on-failure
|
|
LimitNOFILE=65536
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
dest: /etc/systemd/system/nomad.service
|
|
mode: '0644'
|
|
notify: reload systemd
|
|
|
|
- name: Reload systemd and start Nomad servers first
|
|
systemd:
|
|
name: nomad
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
when: inventory_hostname in groups['nomad_servers']
|
|
|
|
- name: Wait for servers to be ready
|
|
pause:
|
|
seconds: 15
|
|
when: inventory_hostname in groups['nomad_servers']
|
|
|
|
- name: Start Nomad clients
|
|
systemd:
|
|
name: nomad
|
|
state: started
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
when: inventory_hostname in groups['nomad_clients']
|
|
|
|
- name: Wait for clients to connect
|
|
pause:
|
|
seconds: 10
|
|
when: inventory_hostname in groups['nomad_clients']
|
|
|
|
- name: Check final service status
|
|
shell: systemctl status nomad --no-pager -l
|
|
register: service_status
|
|
ignore_errors: yes
|
|
|
|
- name: Display service status
|
|
debug:
|
|
msg: |
|
|
✅ 节点 {{ inventory_hostname }} 服务状态:
|
|
📊 状态: {{ 'SUCCESS' if service_status.rc == 0 else 'FAILED' }}
|
|
💾 二进制路径: {{ nomad_binary_path.stdout }}
|
|
|
|
handlers:
|
|
- name: reload systemd
|
|
systemd:
|
|
daemon_reload: yes |