小编use*_*760的帖子

使用 ansible 模板创建实例服务文件

我一直在使用 ansible 来安装和配置多个服务,但这是我第一次尝试设置可以同时运行多个实例的服务。我正在使用服务文件的模板,如下所示:

[Unit]
Description=My Service
[Service]
WorkingDirectory=/var/lib/service/api
ExecStart=/usr/bin/python -O /var/lib/service/api/main.py -f /var/lib/service/api/cfg/service_api.cfg -p {{ port }}
Type=simple
Run Code Online (Sandbox Code Playgroud)

然后我安装和配置此服务的角色包含如下任务:

- name: Configure api.service
  template: src=api.service.j2 dest=/etc/systemd/system/api@{{port}}.service

- name: Start service
  systemd: name=api@{{port}} state=restarted enabled=yes
Run Code Online (Sandbox Code Playgroud)

现在这适用于 port = 80 之类的东西,但我认为我做得不够通用。我不完全了解如何创建这些实例服务。如何修改服务文件和角色,使每个侦听端口都可以拥有自己的服务文件?我应该使用“Wants”关键字还是“WantedBy=multi-user.target”之类的关键字?

systemd ansible ansible-playbook

4
推荐指数
1
解决办法
9040
查看次数

标签 统计

ansible ×1

ansible-playbook ×1

systemd ×1