首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ansible从csv在Netbox中创建站点

使用Ansible从csv在Netbox中创建站点
EN

Stack Overflow用户
提问于 2022-03-21 12:16:54
回答 1查看 177关注 0票数 1

我正在尝试基于CSV文件在Netbox中创建站点。因为我要在站点名中添加一个ID,所以当没有为站点指定ID时,我不希望创建该站点。在这种情况下,CHI和STO将被创建,但BER不会。

我试着把

代码语言:javascript
复制
when: {{ item.ID }} not ''

在循环之前和之后,在第二个任务中,但没有成功。

CSV:

代码语言:javascript
复制
sitename,ID,location
CHI,101,Chicago
BER,,Berlin
STO,103,Stockholm

剧本:

代码语言:javascript
复制
tasks:
  - name: "read sites from csv"
    community.general.read_csv:
      path: sites.csv
      delimiter: ','
    register: sitelist
    delegate_to: localhost

  - name: "create/update sites in netbox"
    netbox.netbox.netbox_site:
      netbox_url: https://url
      netbox_token: token
      data:
        name: "{{ item.sitename }}-{{ item.ID}}"
        physical_address: "{{ item.location }}"
    loop: "{{ sitelist.list }}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-21 16:33:23

你必须像这样写你的测试:

代码语言:javascript
复制
  tasks:
  - name: "read sites from csv"
    community.general.read_csv:
      path: sites.csv
      delimiter: ','
    register: sitelist
    delegate_to: localhost

  - debug:
      msg: "name: {{ item.sitename }}-{{ item.ID}}, physical_address: {{ item.location }}"
    loop: "{{ sitelist.list }}"
    when: item.ID != ''

结果:

代码语言:javascript
复制
ok: [localhost] => (item={'sitename': 'CHI', 'ID': '101', 'location': 'Chicago'}) => {
    "msg": "name: CHI-101, physical_address: Chicago"
}
skipping: [localhost] => (item={'sitename': 'BER', 'ID': '', 'location': 'Berlin'}) 
ok: [localhost] => (item={'sitename': 'STO', 'ID': '103', 'location': 'Stockholm'}) => {
    "msg": "name: STO-103, physical_address: Stockholm"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71557507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档