最近由于需要研究下如何用salt推送filebeat安装和远程启动脚本,开始研究salt有些头大,但是经过两天的被虐大致了解如何编写简单的推送脚本也是一种收获。
下面红色的部分(nohup入restart.sh脚本里的内容)不能正常执行,经查找资料是因为公司的salt版本过低导致的,没办法就只能自己找了,后来突然想在另一台机器用rpm包安装下看看自带的启动脚本是什么样的,找台空机器安装后发现一个强大的功能。
cat restart.sh
ps -ef|grep filebeat|grep -v grep|awk '{print $2}'|xargs kill -9;
nohup ./filebeat -c benmu_product.yml >/dev/null 2>&1
cat install.sls
/filebeat/restart.sh:
file.managed:
- user: root
- mode: 755
- source: salt://unix-filebeat/files/restart.sh
restart_filebeat:
cmd.run:
- name: cd /filebeat && sh restart.sh
salt bigdata1.com state.sls unix-filebeat
root # cat files/filebeat.service
[Unit]
Description=filebeat
Documentation=https://www.elastic.co/guide/en/beats/filebeat/current/index.html
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/filebeat/filebeat -c /filebeat/benmu_SIGN.yml -path.home /filebeat -path.config /filebeat -path.data /filebeat/data -path.logs /var/log/filebeat
Restart=always
[Install]
WantedBy=multi-user.target
-------------------------------------------------------------------
cat modify_new.sh
mv filebeat.service /lib/systemd/system/filebeat.service
systemctl daemon-reload
改后
/filebeat/filebeat.service:
file.managed:
- user: root
- group: root
- mode: 755
- source: salt://unix-filebeat/files/filebeat.service
config_yml:
cmd.run:
- name: cd /filebeat/ && sh modify_new.sh
restart_filebeat:
cmd.run:
- name: systemctl restart filebeat.service
这个非常牛掰,直接后续机器上执行systemctl restart filebeat.service 即可。
群号584912368