Forum: CFEngine Help
Subject: Re: CFEngine Help: Service promises and reload
Author: toddnni
Link to topic: https://cfengine.com/forum/read.php?3,26901,26903#msg-26903
Let's take this as a starting point
bundle agent configure_ssh(yesno) {
vars:
any::
"sshd_vars" string => "yes";
"sshd_vars" string => "no";
"sshd_vars" string => "no";
classes:
any::
"yes" expression => regcmp("", "$(yesno)");
"no" expression => regcmp("", "$(yesno)");
files:
yes::
"/etc/ssh/sshd_config"
create => "true",
edit_line => set_variables("configure_ssh.sshd_vars",
" ", "#", "sshd config"),
classes => if_repaired("sshd_conf_changed");
processes:
yes::
"sshd" restart_class => "restart_sshd";
no::
"sshd" process_count => any_count("stop_sshd");
commands:
freebsd.restart_sshd::
"/usr/sbin/service sshd restart";
freebsd.stop_sshd::
"/usr/sbin/service sshd onestop";
freebsd.sshd_conf_changed::
"/usr/sbin/service sshd reload";
# Plus all permutations for different operating systems
#
#
By using services this can be simplified to
bundle agent configure_ssh(yesno) {
vars:
any::
"sshd_vars" string => "yes";
"sshd_vars" string => "no";
"sshd_vars" string => "no";
classes:
any::
"yes" expression => regcmp("", "$(yesno)");
"no" expression => regcmp("", "$(yesno)");
files:
yes::
"/etc/ssh/sshd_config"
create => "true",
edit_line => set_variables("configure_ssh.sshd_vars",
" ", "#", "sshd config"),
classes => if_repaired("sshd_conf_changed");
services:
yes::
"sshd" service_policy => "start";
no::
"sshd" service_policy => "disable";
commands:
freebsd.sshd_conf_changed::
"/usr/sbin/service sshd reload";
# Plus all permutation for different operating systems
#
And with possible reload we get
bundle agent configure_ssh(yesno) {
vars:
any::
"sshd_vars" string => "yes";
"sshd_vars" string => "no";
"sshd_vars" string => "no";
classes:
any::
"yes" expression => regcmp("", "$(yesno)");
"no" expression => regcmp("", "$(yesno)");
files:
yes::
"/etc/ssh/sshd_config"
create => "true",
edit_line => set_variables("configure_ssh.sshd_vars",
" ", "#", "sshd config"),
classes => if_repaired("sshd_conf_changed");
services:
yes::
"sshd" service_policy => "start";
no::
"sshd" service_policy => "disable";
sshd_conf_changed::
"sshd" service_policy => "reload";
Thanks for the interest.
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine