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  
相关推荐
cyber_两只龙宝2 分钟前
【Oracle】Oracle之DQL中WHERE限制条件查询
linux·运维·数据库·云原生·oracle
斌味代码15 分钟前
Shell 性能监控:指标采集、告警规则与可视化大盘设计
运维
22信通小白23 分钟前
USRP初学者使用手册(基础配置及bug记录)——Linux+Clion(单台X310收发)
linux·运维·c++·5g·bug·信息与通信
TechMasterPlus2 小时前
Linux U-Boot 与内核启动流程深度解析:从上电到 Shell 的完整之旅
linux·运维·服务器
大白菜和MySQL2 小时前
Linux下dhcp服务搭建
linux·运维·服务器
SPC的存折2 小时前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Run_Teenage2 小时前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
CDN3602 小时前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
freewlt2 小时前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_02 小时前
理解Linux中的OS管理和进程属性
linux·运维·服务器