我试图在CentOS7中启用带有ansible的碳聚合器,使用ansible变量" ansible_processor_cores"来启用systemctl服务。它不起作用。 这是角色示例:
- name: enable carbon-aggregator
service:
name: 'carbon-aggregator@{0..{{ansible_processor_cores -3}}}'
enabled: yes
state: started
daemon_reload: yes
Carbon.conf.j2:
{% for aggr in range(ansible_processor_cores -2) %}
[aggregator:{{aggr}}]
{% endfor %}
错误是:
失败! => {"已更改":false,"失败":true," msg":"无法启动 服务碳聚合器@ {0..1}:工作 碳聚合器@ \ x7b0..1 \ x7d.service失败,因为控件 进程退出并显示错误代码。请参阅\" systemctl状态 \"碳 - 聚合@ \\ x7b0..1 \\ x7d.service \" \"和\" journalctl -xe \"有关详情。\ n"}
我在这里看到的是尝试启用一些我没有问过的服务:
碳 - 聚合@ \ x7b0..1 \ x7d.service
我不知道他们来自哪里。 如果我手动执行此操作,则完全可以:
sudo systemctl enable carbon-aggregator@{0..1}
有什么建议吗?
答案 0 :(得分:2)
要启动许多服务,您可以使用with_sequence
循环。有关详细信息,请参阅Loops文档,但我认为with_sequence
的文档可能不正确。
示例可能类似于:
- name: enable carbon-aggregator
service:
name: 'carbon-aggregator@{{ item }}'
enabled: yes
state: started
daemon_reload: yes
with_sequence: start=0 end={{ansible_processor_cores-1}}
在具有四个核心的系统上,上述循环将调用service
模块四次,name:
设置为carbon-aggregator@0
,carbon-aggregator@1
,carbon-aggregator@2
,和carbon-aggregator@3
。