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' |