76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: 安装并配置新的 Nomad Server 节点
 | 
						|
  hosts: influxdb1
 | 
						|
  become: yes
 | 
						|
  gather_facts: no
 | 
						|
  
 | 
						|
  tasks:
 | 
						|
    - name: 更新包缓存
 | 
						|
      apt:
 | 
						|
        update_cache: yes
 | 
						|
        cache_valid_time: 3600
 | 
						|
      retries: 3
 | 
						|
      delay: 10
 | 
						|
 | 
						|
    - name: 安装依赖包
 | 
						|
      apt:
 | 
						|
        name:
 | 
						|
          - wget
 | 
						|
          - curl
 | 
						|
          - unzip
 | 
						|
          - podman
 | 
						|
          - buildah
 | 
						|
          - skopeo
 | 
						|
        state: present
 | 
						|
      retries: 3
 | 
						|
      delay: 10
 | 
						|
 | 
						|
    - name: 检查 Nomad 是否已安装
 | 
						|
      shell: which nomad || echo "not_found"
 | 
						|
      register: nomad_check
 | 
						|
      changed_when: false
 | 
						|
 | 
						|
    - name: 下载并安装 Nomad
 | 
						|
      block:
 | 
						|
        - name: 下载 Nomad 1.10.5
 | 
						|
          get_url:
 | 
						|
            url: "https://releases.hashicorp.com/nomad/1.10.5/nomad_1.10.5_linux_amd64.zip"
 | 
						|
            dest: "/tmp/nomad.zip"
 | 
						|
            mode: '0644'
 | 
						|
 | 
						|
        - name: 解压 Nomad
 | 
						|
          unarchive:
 | 
						|
            src: "/tmp/nomad.zip"
 | 
						|
            dest: "/usr/bin/"
 | 
						|
            remote_src: yes
 | 
						|
            owner: root
 | 
						|
            group: root
 | 
						|
            mode: '0755'
 | 
						|
 | 
						|
        - name: 清理临时文件
 | 
						|
          file:
 | 
						|
            path: "/tmp/nomad.zip"
 | 
						|
            state: absent
 | 
						|
      when: nomad_check.stdout == "not_found"
 | 
						|
 | 
						|
    - name: 验证 Nomad 安装
 | 
						|
      shell: nomad version
 | 
						|
      register: nomad_version_output
 | 
						|
      
 | 
						|
    - name: 显示安装结果
 | 
						|
      debug:
 | 
						|
        msg: |
 | 
						|
          ✅ 节点 {{ inventory_hostname }} 软件安装完成
 | 
						|
          📦 Podman: {{ ansible_facts.packages.podman[0].version if ansible_facts.packages.podman is defined else 'checking...' }}
 | 
						|
          🎯 Nomad: {{ nomad_version_output.stdout.split('\n')[0] }}          
 | 
						|
 | 
						|
    - name: 启用 Podman socket
 | 
						|
      systemd:
 | 
						|
        name: podman.socket
 | 
						|
        enabled: yes
 | 
						|
        state: started
 | 
						|
      ignore_errors: yes
 | 
						|
 | 
						|
    - name: 继续完整配置
 | 
						|
      debug:
 | 
						|
        msg: "软件安装完成,现在将运行完整的 Nomad 配置..." |