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
Ansible-playbookAnsible 的一个命令行工具,用于运行 Ansible Playbook 文件。以下是 Ansible-playbook 的语法: ``` ansible-playbook [options] playbook.yml ``` 其中,`options` 是可选参数,包括: - `-i INVENTORY, --inventory-file=INVENTORY`:指定 Ansible Inventory 文件的路径。 - `-l SUBSET, --limit=SUBSET`:限制 Playbook 的作用范围到某些主机或组。 - `-t TAGS, --tags=TAGS`:只运行指定标签的任务。 - `-e EXTRA_VARS, --extra-vars=EXTRA_VARS`:传递额外的变量Playbook- `-f FORKS, --forks=FORKS`:指定同时在多少台主机上运行任务。 - `-v, --verbose`:增加 Ansible 的输出详细程度。 - `-vv, --verbose --verbose`:增加更详细的输出。 - `-vvv, --verbose --verbose --verbose`:增加最详细的输出。 `playbook.yml` 是 Ansible Playbook 文件的路径。Playbook 文件是一个 YAML 格式的文件,包含了一系列任务和配置信息。其中,每个任务都包含了一个或多个模块,用于在远程主机上执行操作。 以下是一个简单的 Ansible Playbook 示例: ```yaml --- - name: Install Apache HTTP Server hosts: webservers become: true tasks: - name: Install Apache HTTP Server yum: name: httpd state: present - name: Start Apache HTTP Server service: name: httpd state: started enabled: true ``` 该 Playbook 包含了两个任务,分别用于安装和启动 Apache HTTP Server。其中,`hosts` 参数指定了要在哪些主机上执行任务,`become` 参数指定了以超级用户身份执行任务。每个任务都包含了一个模块,用于执行操作。在该示例中,分别使用了 `yum` 和 `service` 模块来安装和启动 Apache HTTP Server。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值