我刚接触Ansible(Ansible2.9.6),最近开始研究一个项目的设计/目录结构。我的任务是配置测试实验室中的设备(特别是不同的思科设备)以支持测试用例。
我希望有一个site.yml文件,包含所有20+测试用例。这个想法是,用户可以根据参数,通过site.yml针对特定的供应商设备类型(Cisco4507、Cisco3850等)执行所有、多个或单个测试用例。
Ansible-Playbook-i Inventories/network_staging site.yml--tags=ntp-e type=C4507
~/site.yml
---
- name: Test Cases
hosts: all
gather_facts: false
connection: local
tasks:
- name: ntp role
hosts: "{{type}}_ntpTC"
include_role:
name: ntp
tags:
- ntp
- name: vlan role
hosts: "{{type}}_vlanTC"
include_role:
name: vlan
tags:
- vlan
我当前的site.yaml有多个播放器,每个播放器表示一个测试用例,并使用适当的主机。然而,我将需要使用不同的设备来执行任务,来自主机组,这取决于角色/测试用例。下面是一个例子:
---
- name: NTP Test Case
hosts: "{{type}}_ntpTC"
gather_facts: false
connection: local
tasks:
- name: ntp role
include_role:
name: ntp
tags:
- ntp
- name: VLAN Test Case
hosts: "{{type}}_vlanTC"
gather_facts: false
connection: local
tasks:
- name: vlan role
include_role:
name: vlan
tags:
- vlan
###main.yml inventory list
## IPs defined in ~/inventories/network_staging/host_vars/SW6.yml SW7.yml and SW8.yml
##Cisco 4507 Test Cases
#NTP Test Case
[C4507_ntpTC]
SW8
#VLAN Test Case
[C4507_vlanTC]
SW7
SW6
---
# Tasking for NTP Test Case
- name: import ntp.yml
tags:
- ntp
~/roles/ntp/tasks/ntp.yml
---
- name: show NTP
ios_command:
commands:
- <insert ntp show status commands on SW8 here….>
~/roles/vlan/tasks/main.yml
---
# Tasking for VLAN Test Case
- name: import vlan.yml
tags:
- vlan
~/roles/vlan/tasks/vlan.yml
---
- name: configure VLAN SW7
ios_command:
commands:
- <insert vlan access switchport configuration here for SW7….>
- name: configure VLAN SW6
ios_command:
commands:
- <insert vlan access switchport configuration here for SW6….>
- <insert ping SW7 here>
您可以尝试包含when语句。例如:
tasks:
- name: ntp role
include_role:
name: ntp
tags:
- ntp
when: ansible_hostname in groups['group_name']
例如,如果我有10台主机,我的串行参数是3,那么这3个任务将如何执行这些任务?这些任务是否会一次一个主机地一个接一个地执行?或者像默认执行策略一样执行,每个主机将执行第一个任务,然后再执行下一个任务。 我没有找到任何文件提到这一点。
我有一个Servlet,它接收请求,必须处理5个任务(从外部服务器获取数据),并将所有数据发送回客户机。
我有3个不同的游戏levels.So会有三个不同的高分需要在谷歌游戏服务上发布排行榜。我不明白这个。我所做的是我创建了一个方法 对于submitcore(),我只是在游戏中的每个级别调用此方法,并从那里发送高分。 但是当我调用getLeaderboardGPGS()时,它只显示最后一级的高分。 所以我不知道如何实现这个多重排行榜。
每个人 都。我一直在寻找这个问题,但我在这里没有找到它,所以我想它真的很简单。 我正在用JavaFX创建一个非常简单的应用程序,只需一个按钮。现在我想处理它的事件(如按下或释放),但当我在互联网上看到示例时,它们都使用匿名类(每个事件都有一个不同的类),这在我看来让代码变得肮脏。这就是为什么我想将事件处理程序放在一个单独的类中,并将它们添加到按钮中。 问题是我不知道我是否必须为每个事件创建一个不同