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
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to