如何将字符从 stdout 分离到变量中
How to separate character from stdout into variables
我在寄存器输出的标准输出中有以下输出:
“server1,Running\nserver2,Running\nserver3,Not Activated\nserver4,Not Activated”
我想创建一个仅包含未激活服务器的列表:
vmoff:
- name: server3
- name: server4
我在标准输出中也有以下输出:
“server1,0.5\nserver2,0.7\nserver3,1.0\nserver4,0.5\n”
我想变成下面的:
vmlist:
- name: server1
proc: 0.5
- name: server2
proc: 0.7
- name: server3
proc: 1.0
- name: server4
proc: 0.5
给定注册的标准输出
reg:
stdout: server1,Running\nserver2,Running\nserver3,Not Activated\nserver4,Not Activated
创建字典
vm_all: "{{ dict(reg.stdout|
split('\n')|
select()|
map('split', ',')|
list) }}"
给予
vm_all:
server1: Running
server2: Running
server3: Not Activated
server4: Not Activated
现在,select未激活的服务器和映射属性名称
vm_not_activated: "{{ vm_all|dict2items(key_name='name', value_name='status')|
selectattr('status', 'eq', 'Not Activated')|
map(attribute='name')|
list }}"
给出列表
vm_not_activated:
- server3
- server4
如果需要字典,请将过滤器 community.general.dict_kv 添加到管道
vm_not_activated: "{{ vm_all|dict2items(key_name='name', value_name='status')|
selectattr('status', 'eq', 'Not Activated')|
map(attribute='name')|
map('community.general.dict_kv', 'name')|
list }}"
给予
vm_not_activated:
- name: server3
- name: server4
同样,给定注册的标准输出
reg:
stdout: server1,0.5\nserver2,0.7\nserver3,1.0\nserver4,0.5\n
创建字典
vmdict: "{{ dict(reg.stdout|
split('\n')|
select()|
map('split', ',')|
list) }}"
给予
vmdict:
server1: '0.5'
server2: '0.7'
server3: '1.0'
server4: '0.5'
现在,创建列表
vmlist: "{{ vmdict|dict2items(key_name='name', value_name='proc') }}"
给予
vmlist:
- name: server1
proc: '0.5'
- name: server2
proc: '0.7'
- name: server3
proc: '1.0'
- name: server4
proc: '0.5'
我在寄存器输出的标准输出中有以下输出:
“server1,Running\nserver2,Running\nserver3,Not Activated\nserver4,Not Activated”
我想创建一个仅包含未激活服务器的列表:
vmoff:
- name: server3
- name: server4
我在标准输出中也有以下输出:
“server1,0.5\nserver2,0.7\nserver3,1.0\nserver4,0.5\n”
我想变成下面的:
vmlist:
- name: server1
proc: 0.5
- name: server2
proc: 0.7
- name: server3
proc: 1.0
- name: server4
proc: 0.5
给定注册的标准输出
reg:
stdout: server1,Running\nserver2,Running\nserver3,Not Activated\nserver4,Not Activated
创建字典
vm_all: "{{ dict(reg.stdout|
split('\n')|
select()|
map('split', ',')|
list) }}"
给予
vm_all:
server1: Running
server2: Running
server3: Not Activated
server4: Not Activated
现在,select未激活的服务器和映射属性名称
vm_not_activated: "{{ vm_all|dict2items(key_name='name', value_name='status')|
selectattr('status', 'eq', 'Not Activated')|
map(attribute='name')|
list }}"
给出列表
vm_not_activated:
- server3
- server4
如果需要字典,请将过滤器 community.general.dict_kv 添加到管道
vm_not_activated: "{{ vm_all|dict2items(key_name='name', value_name='status')|
selectattr('status', 'eq', 'Not Activated')|
map(attribute='name')|
map('community.general.dict_kv', 'name')|
list }}"
给予
vm_not_activated:
- name: server3
- name: server4
同样,给定注册的标准输出
reg:
stdout: server1,0.5\nserver2,0.7\nserver3,1.0\nserver4,0.5\n
创建字典
vmdict: "{{ dict(reg.stdout|
split('\n')|
select()|
map('split', ',')|
list) }}"
给予
vmdict:
server1: '0.5'
server2: '0.7'
server3: '1.0'
server4: '0.5'
现在,创建列表
vmlist: "{{ vmdict|dict2items(key_name='name', value_name='proc') }}"
给予
vmlist:
- name: server1
proc: '0.5'
- name: server2
proc: '0.7'
- name: server3
proc: '1.0'
- name: server4
proc: '0.5'