Ansible logstash安装
Ansible logstash installation
我正在尝试在 RHEL 7 上使用 Ansible 安装 Logstash。
安装后无法启动logstash服务。我在网上搜索 service not found
error.I 并找到以下命令。
/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
之后,logstash 服务启动。
我在 systemd 命令上方的剧本中执行了以下操作。但它不是幂等的。第一个任务每次都是运行。
我有两个问题。
1. 除了使用 shell 有什么方法可以做到这一点?
2. 我可以在这个任务中加入什么 when
条件使其幂等。如果我检查服务状态,把状态放在when条件下,那我需要在最后再写一遍,保证状态(重复任务)。
否则我只需要 运行 此命令仅在第一次在此服务器上 运行 时执行。那可能吗?
请指教。
- name: generate logstash.service file for systemd
shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
- name: Enable and restart logstash.service
systemd:
name: logstash.service
enabled: yes
state: restarted
如果你想执行一些脚本 - 你可以使用 shell
或 command
。否则你可以自己生成systemd服务
您不需要使用 when
来执行此操作,您可以在 shell 任务中使用 creates
关键字。
假设您的单元文件是在 /etc/systemd/system/logstash.service
中创建的
你应该把你的第一个任务写成
- name: generate logstash.service file for systemd
shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
creates: /etc/systemd/system/logstash.service
如果 ansible 下次发现此文件存在 - 它不会再次 运行 脚本。
另一种方法是模板 /etc/logstash/startup.options 和 运行 仅当您的模板已更改时才生成服务任务。
我正在尝试在 RHEL 7 上使用 Ansible 安装 Logstash。
安装后无法启动logstash服务。我在网上搜索 service not found
error.I 并找到以下命令。
/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
之后,logstash 服务启动。
我在 systemd 命令上方的剧本中执行了以下操作。但它不是幂等的。第一个任务每次都是运行。
我有两个问题。
1. 除了使用 shell 有什么方法可以做到这一点?
2. 我可以在这个任务中加入什么 when
条件使其幂等。如果我检查服务状态,把状态放在when条件下,那我需要在最后再写一遍,保证状态(重复任务)。
否则我只需要 运行 此命令仅在第一次在此服务器上 运行 时执行。那可能吗?
请指教。
- name: generate logstash.service file for systemd
shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
- name: Enable and restart logstash.service
systemd:
name: logstash.service
enabled: yes
state: restarted
如果你想执行一些脚本 - 你可以使用
shell
或command
。否则你可以自己生成systemd服务您不需要使用
when
来执行此操作,您可以在 shell 任务中使用creates
关键字。
假设您的单元文件是在 /etc/systemd/system/logstash.service
中创建的你应该把你的第一个任务写成
- name: generate logstash.service file for systemd
shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
creates: /etc/systemd/system/logstash.service
如果 ansible 下次发现此文件存在 - 它不会再次 运行 脚本。
另一种方法是模板 /etc/logstash/startup.options 和 运行 仅当您的模板已更改时才生成服务任务。