ansible-playbook -e 传递变量

ansible-playbook -e 用来传递额外变量(extra variables)到 playbook 中。

基本语法

bash 复制代码
ansible-playbook -e "变量名=值" playbook.yml  
# 或  
ansible-playbook --extra-vars "变量名=值" playbook.yml  

使用方式

1. 传递单个变量

bash 复制代码
ansible-playbook -e "env=production" deploy.yml  

2. 传递多个变量

bash 复制代码
# 方式一:多个 -e 选项  
ansible-playbook -e "env=production" -e "version=1.2.3" deploy.yml

# 方式二:空格分隔  
ansible-playbook -e "env=production version=1.2.3" deploy.yml

# 方式三:JSON 格式  
ansible-playbook -e '{"env":"production","version":"1.2.3"}' deploy.yml  

3. 从文件传递变量

bash 复制代码
# YAML 文件  
ansible-playbook -e "@vars.yml" deploy.yml

# JSON 文件  
ansible-playbook -e "@vars.json" deploy.yml  

4. 在 playbook 中使用变量

yaml 复制代码
- name: Deploy application  
  hosts: all  
  tasks:  
    - name: Deploy to {{ env }} environment  
      debug:  
        msg: "Deploying version {{ version }} to {{ env }}"  

变量优先级

-e 传递的变量具有最高优先级,会覆盖其他来源的同名变量:

  1. Extra vars (-e) ← 最高优先级
  2. Task vars
  3. Block vars
  4. Role vars
  5. Play vars
  6. Host vars
  7. Group vars
  8. Inventory vars ← 最低优先级

实际应用场景

bash 复制代码
# 部署不同环境  
ansible-playbook -e "env=staging" -e "branch=develop" deploy.yml

# 传递敏感信息  
ansible-playbook -e "db_password=secret123" setup.yml

# 动态配置  
ansible-playbook -e "nginx_port=8080" -e "workers=4" webserver.yml  
相关推荐
九硕智慧建筑一体化厂家7 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
刘某的Cloud8 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
神奇霸王龙10 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
cfm_291411 小时前
基于Binlog实现不停机数据库平滑迁移技术
运维·数据库·架构
迪康Defender11 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
HiDev_12 小时前
【非标自动化】2、认识元器件(固态继电器)
运维·自动化
明达智控技术13 小时前
国产 PLC 落地立库自动化,MC5000边缘智能控制器破局
运维·自动化
小绫网络安全13 小时前
Kali Linux渗透测试入门教程:从零搭建到实战攻防
linux·运维·服务器
allforgood13 小时前
控制启动过程
linux·运维·服务器
西安景驰电子13 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php