Ansible-playbook 传递变量参数

ansible-playbook yml脚本传递变量参数的几种方法

playbook 脚本内容

---
- hosts: "{{ hosts }}"  # 变量
  remote_user: 普通用户
  become: yes
  become_method: sudo

  tasks:
    - name: deliver authorized_keys
      authorized_key:
        user: "{{ user }}"  # 变量
        key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
        state: present
        exclusive: yes

命令行传参4种方式

## 执行playbook脚本传参

# -e (优先级最高)
ansible-playbook -e "user=zwl hosts=dny" vars-test.yml

# --extra-vars (key=value)
ansible-playbook --extra-vars "user=zwl hosts=dny" vars-test.yml

# --extra-vars (json格式)
ansible-playbook --extra-vars "{'user':'zwl','hosts':'dny'}" vars-test.yml

# --extra-vars (使用@语法 json文件)
ansible-playbook --extra-vars "@var.json" vars-test.yml
# var.json文件内容
{'user':'zwl','hosts':'dny'}

hosts文件传参

## /etc/ansible/hosts 文件
[test]
192.168.1.123 user=zwl hosts=dny

hosts文件里面写[groupname:vars]传参

## /etc/ansible/hosts 文件
[test]
192.168.1.123

[test:vars]
user=zwl hosts=dny

playbook文件中vars指定

---
- hosts: "{{ hosts }}"  # 变量
  remote_user: 普通用户
  become: yes
  become_method: sudo
  
  vars:
  - user=zwl
  - hosts=dny
  
  tasks:
    - name: deliver authorized_keys
      authorized_key:
        user: "{{ user }}"  # 变量
        key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
        state: present
        exclusive: yes
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值