首页 > 解决方案 > Ansible:如何使用通配符或替代方法?

问题描述

我最近了解到在 Ansible 上无法使用通配符。所以我想知道如何使用角色运行下一个命令。

cat /sys/class/net/*/address | while read mac

我试图这样做,但它不起作用。

- name: Cat address file
  command: 'cat /sys/class/net/lo/address'
  register: my_items
  
- name: Cat address file 2
  command: 'cat /sys/class/net/enp2s0/address'
  register: my_items
  
- name: Cat address file 3
  command: 'cat /sys/class/net/wlo1/address'
  register: my_items

- name: Read address file
  command: read 
  with_items: my_items.stout_lines

标签: ansibleansible-role

解决方案


我不知道您的错误是什么,但我使用了它,它对我有用:

---
- hosts: dev
  become: yes
  tasks:
    - name: get mac
      shell: cat /sys/class/net/*/address
      register: items
    - name: debug
      debug:
        msg: "{{items.stdout_lines}}"

结果: 在此处输入图像描述


推荐阅读