ansible启动多个服务并截断名称服务

ansible启动多个服务并截断名称服务,ansible,roles,Ansible,Roles,我想在playbook上启动多个服务,但我想删除服务结束字符串,如: a、 服务=>a b、 服务=>b 因为我不能使用service a.service start,但我必须使用service a start 因为变量项存储在default/main.yml角色手册中,如下所示: name_services: - a.service - b.service

我想在playbook上启动多个服务,但我想删除服务结束字符串,如: a、 服务=>a b、 服务=>b

因为我不能使用service a.service start,但我必须使用service a start

因为变量项存储在default/main.yml角色手册中,如下所示:

name_services:
  - a.service
  - b.service                                                                                                                                                                                 
关于main.yml

- name: start multiple service
  service:
    name: "{{ item }}"
    state: started
  with_items: "{{ name_services }}"

这里是一种实现方法,因为服务的字符串值中只有一个点(
)。您可以基于点进行分割,并获取第一个块(点之前的字符串)

另一种方法是从字符串中删除
.service
部分:

  - debug:
      var: item.replace('.service','')
    loop: "{{ name_services }}"
干杯

使用过滤器

-名称:启动多个服务
服务:
名称:{{item | splitext | first}}”
国家:开始
与_项:“{name_services}}”
  - debug:
      var: item.replace('.service','')
    loop: "{{ name_services }}"