比较整数值时显示

时间:2018-11-13 15:28:54

标签: ansible

此角色尝试从树莓派计算机(仅在此情况下为host1)获取cpu温度,检查docker容器boinc_universeathome是否正在运行,然后检查该容器是否正在运行,并且cpu temp> highThresholdTrigger,则应暂停该容器。

如果我在角色中没有when子句的情况下运行此命令,那么正确地它总是会暂停容器。

当when子句出现时,为什么它不起作用?我希望使用when子句,仅应在满足条件时暂停容器。但是条件永远不会满足。

大概这是因为我编写when子句的方式有问题,但是我不知道这是怎么回事?

(我知道我在这里使用shell而不是docker模块)

我的主人:

[monitorrpihosts]
host1

[monitorrpihosts:vars]
ansible_connection=ssh
ansible_ssh_user=someusername
highThresholdTrigger=70
highThresholdReset=40

我的剧本:

---
- name: Monitor rpi
  hosts: monitorrpihosts
  become: yes
  become_user: root
  become_method: sudo

  roles:
   - monitorrpi

我的角色:

---
- name: Get current cpu temp
  shell: '/opt/vc/bin/vcgencmd measure_temp | grep ^temp= | cut -d= -f2 | cut -d\. -f1'
  register: cpu_temp

- name: check if boinc is running
  shell: 'docker ps | grep boinc_universeathome | grep -v Paused'
  ignore_errors: True
  register: boinc_running

- name: pause boinc if cpu temp gt highThreshold
  shell: 'docker pause boinc_universeathome'
  when:
    - cpu_temp.stdout_lines|int > highThresholdTrigger|int
    - boinc_running.rc|int == 0

1 个答案:

答案 0 :(得分:4)

int randomIndex = myRandom.Next(0, lines.Length); 是行的列表。尝试使用cpu_temp.stdout_lines