내 기본 문제는 여기 제공자이라는 용어의 사용입니다. Monit은 서비스 상태를 실행하고 모니터링하는 공급자입니다. 하지만 monit은 시스템의 제공자에 의존하여 서비스를 시작하고 중지합니다 - sysinitv, upstart, systemd. cookbooks/poise-monit에서주방장, poise-service 및 poise-monit을 사용하여 systemd를 기본으로 사용하는 방법
나는
지금, 내가 뭘 원하는 상태를 관리 할 수 MONIT를 통해 같은서비스 제공 업체
MONIT 서비스 제공자가 서비스 관리자로 MONIT를 사용하는 poise_service에게 자원을 할 수 있도록 포함되어 참조하십시오. 정상적인 poises-service의 sysvinit 공급자를 사용하여 초기화 스크립트를 생성하지만 은 Monit을 통해 서비스 상태를 관리합니다.
redis-server
등 다양한 프로세스를 관리하지만, 기본 배관은
systemd
않습니다.
systemd
에서보다는
/etc/init.d/monit
를 통해 시작 MONIT
자체 :
#configuration file for redis
fnp_redis_conf = "#{node['redis']['conf_dir']}/redis.conf"
template fnp_redis_conf do
source "redis.conf.erb"
owner "root"
group "root"
mode "0644"
variables :redis => node['redis'], :redis_server => node['redis']['server']
end
#instructions for systemd
poise_service 'redis-server' do
provider Chef::Provider::Service::Systemd
command '/usr/local/bin/redis-server #{fnp_redis_conf}'
end
#instructions for monit to call on systemd
poise_service 'redis-server' do
command 'systemctl start redis-server'
provider :monit
end
니스 가지고 :
나는 이런 식으로 뭔가를해야한다.
환경 :
macos 12 host
Ubuntu 16.04 guest
Chef Development Kit Version: 2.3.4
chef-client version: 13.4.19
delivery version: master (73ebb72a6c42b3d2ff5370c476be800fee7e5427)
berks version: 6.3.1
kitchen version: 1.17.0
inspec version: 1.36.1