Ansible 可拆卸日志存储装置
我正在尝试在RHEL7上使用Ansible安装Logstash。 安装后,我无法启动日志存储服务。我获取服务未找到错误。我联机搜索并找到以下命令Ansible 可拆卸日志存储装置,ansible,logstash,Ansible,Logstash,我正在尝试在RHEL7上使用Ansible安装Logstash。 安装后,我无法启动日志存储服务。我获取服务未找到错误。我联机搜索并找到以下命令 /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd 之后,logstash服务启动 我在systemd命令上方的剧本中做了如下操作。但它不是幂等的。第一个任务每次都在运行。 我这里有两个问题。 1.除了使用shell,还有什么方法可以实现这一点吗?
/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
之后,logstash服务启动
我在systemd命令上方的剧本中做了如下操作。但它不是幂等的。第一个任务每次都在运行。
我这里有两个问题。
1.除了使用shell,还有什么方法可以实现这一点吗?
2.什么时候我可以在这个任务中设置条件使它幂等。如果我检查服务状态并将状态设置为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或命令。否则,您可以自己生成systemd服务
您不需要在何时这样做,您可以在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,并仅在模板已更改的情况下运行生成服务任务。是否有用于/usr/share/logstash/bin/system安装的ansible模块,而不是使用shellcommand@smily我不这么认为。如果您试图使用ansible部署ELK stack,您可能需要检查ansible Galaxy是否存在现有角色,谢谢,是的,我最初使用了该角色。但是服务没有启动,我不得不用这个变通方法更新代码