68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
---
 | 
						|
- name: 在 master 和 ash3c 节点安装 Consul
 | 
						|
  hosts: master,ash3c
 | 
						|
  become: yes
 | 
						|
  vars:
 | 
						|
    consul_version: "1.21.5"
 | 
						|
    consul_arch: "arm64"  # 因为这两个节点都是 aarch64
 | 
						|
    
 | 
						|
  tasks:
 | 
						|
    - name: 检查节点架构
 | 
						|
      command: uname -m
 | 
						|
      register: node_arch
 | 
						|
      changed_when: false
 | 
						|
      
 | 
						|
    - name: 显示节点架构
 | 
						|
      debug:
 | 
						|
        msg: "节点 {{ inventory_hostname }} 架构: {{ node_arch.stdout }}"
 | 
						|
        
 | 
						|
    - name: 检查是否已安装 consul
 | 
						|
      command: which consul
 | 
						|
      register: consul_check
 | 
						|
      failed_when: false
 | 
						|
      changed_when: false
 | 
						|
      
 | 
						|
    - name: 显示当前 consul 状态
 | 
						|
      debug:
 | 
						|
        msg: "Consul 状态: {{ 'already installed' if consul_check.rc == 0 else 'not installed' }}"
 | 
						|
        
 | 
						|
    - name: 删除错误的 consul 二进制文件(如果存在)
 | 
						|
      file:
 | 
						|
        path: /usr/local/bin/consul
 | 
						|
        state: absent
 | 
						|
      when: consul_check.rc == 0
 | 
						|
      
 | 
						|
    - name: 更新 APT 缓存
 | 
						|
      apt:
 | 
						|
        update_cache: yes
 | 
						|
      ignore_errors: yes
 | 
						|
      
 | 
						|
    - name: 安装 consul 通过 APT
 | 
						|
      apt:
 | 
						|
        name: consul={{ consul_version }}-1
 | 
						|
        state: present
 | 
						|
        
 | 
						|
    - name: 验证 consul 安装
 | 
						|
      command: consul version
 | 
						|
      register: consul_version_check
 | 
						|
      changed_when: false
 | 
						|
      
 | 
						|
    - name: 显示安装的 consul 版本
 | 
						|
      debug:
 | 
						|
        msg: "安装的 Consul 版本: {{ consul_version_check.stdout_lines[0] }}"
 | 
						|
        
 | 
						|
    - name: 确保 consul 用户存在
 | 
						|
      user:
 | 
						|
        name: consul
 | 
						|
        system: yes
 | 
						|
        shell: /bin/false
 | 
						|
        home: /opt/consul
 | 
						|
        create_home: no
 | 
						|
        
 | 
						|
    - name: 创建 consul 数据目录
 | 
						|
      file:
 | 
						|
        path: /opt/consul
 | 
						|
        state: directory
 | 
						|
        owner: consul
 | 
						|
        group: consul
 | 
						|
        mode: '0755' |