到目前为止,我正在使用salt
测试ansible
作为管理系统。
当状态发生变化时,如何触发操作(特别是服务重新加载)?
在Ansible中,这是通过notify
完成的,但浏览salt
文档我找不到任何相似内容。
我找到了watch
,它反之亦然:"检查一下,如果它改为这个" 。
还有listen
似乎更接近我的需求(文档提到服务重新加载)但我不能把它们放在一起。
要设置示例,以下方案如何在salt
中起作用:检查git
repo(如果不存在则创建它,否则从中拉出),如果已更改,则重新加载服务? Ansible等价物是
- name: clone my service
git:
clone: yes
dest: /opt/myservice
repo: http://git.example.com/myservice.git
version: master
force: yes
notify:
- restart my service if needed
- name: restart my service if needed
systemd:
name: myservice
state: restarted
enabled: True
daemon_reload: yes
答案 0 :(得分:1)
你的例子:
ok 1 - The type 'Str' can do the method 'Str'
ok 2 - The type 'Foo' can do the method 'Str'
ok 3 - The type 'Bar' can do the method 'Str'
not ok 4 -
ok 5 -
1..5
# Failed test at /Users/brian/Desktop/hello.p6 line 12
# expected: 'Foo'
# got: 'Mu'
# Looks like you failed 1 test of 5
当repo会有变化时(第一次克隆,更新等)
国家将被标记为"有变化"因此,依赖国家 -
在这种情况下ensure my service:
git.latest:
- name: http://git.example.com/myservice.git
- target: /opt/myservice
service.running:
- watch:
- git: http://git.example.com/myservice.git
- 将需要更改,service.running
表示重新启动