ansible - 如何将多行作为值传递给 Ansible
问题描述
我正在尝试将多行作为值传递给我的 Ansible 文件,但这只是传递了第一行。
cat slot_number.txt
slot4
slot2
slot1
slot3
我的 ansible 文件如下 update_bios.yml
tasks:
- name: Powering off slot number
command: "/usr/local/bin/power-util {{slot_number}} off"
- name: Starting to update BIOS
command: "/usr/bin/fw-util {{slot_number}} --update --bios"
ansible-playbook -l myhosts update_bios.yml -e "slot_number=$(cat slot_number.txt)"
我想像下面这样运行我的命令:
/usr/local/bin/power-util slot1 关闭
/usr/local/bin/power-util slot2 关闭
/usr/local/bin/power-util slot3 关闭
解决方案
像这样的东西应该工作。
vars:
slot_numbers: "{{ lookup('file', './slot_number.txt').splitlines() }}"
tasks:
- name: Powering off slot number
command: "/usr/local/bin/power-util {{ item }} off"
loop: "{{ slot_numbers }}"
- name: Starting to update BIOS
command: "/usr/bin/fw-util {{ item }} --update --bios"
loop: "{{ slot_numbers }}"
推荐阅读
- javascript - 在 jquery 中单击 1 次但多次提醒
- javascript - 由于我认为的特殊性,在 javascript 中没有发生切换插入符号/don 按钮
- microsoft-teams - 在任务 Microsoft Teams 的 iframe 中发送 POST 请求
- python - 在 Django 中交叉加入
- javascript - 以漂亮的方式为多个类属性分配相同的值
- java - 覆盖基类中的非标识符属性并使其成为子类中的标识符
- jestjs - Jest 覆盖不应在路径中包含 rootDir,与 Cypress 覆盖不匹配
- java - 如何使用 MessagePack 构建 Java 微服务架构
- azure-active-directory - MSAL.Net 连接到与 ADFS 联合的 Azure AD
- javascript - “动作”类型上不存在 Angular ngrx 属性“有效负载”