bundle agent julien { vars: console_julien.(debian|ubuntu):: "bash_path" string => "/bin/bash"; "group_command" string => "$(paths.groupadd)"; "packages" slist => { }; console_julien.centos:: "bash_path" string => "/bin/bash"; "group_command" string => "$(paths.groupadd)"; "packages" slist => { }; console_julien.(debian|ubuntu).!(andromeda|hero|hurricane|collab_jde):: "secondary_groups" slist => { "sudo" }; collab_jde:: "secondary_groups" slist => { "docker", "lxd", "sudo" }; andromeda|hero:: "secondary_groups" slist => { "adm", "cdrom", "dip", "docker", "libvirt", "lpadmin", "plugdev", "sambashare", "sudo", "wireshark" }; hurricane:: "secondary_groups" slist => { "adm", "boinc", "cdrom", "dip", "docker", "libvirt", "lp", "lpadmin", "plugdev", "sambashare", "sudo", "ubridge", "wireshark" }; console_julien.linux.awh:: "password" string => "$6$EkJ5N916$CVrBdCOstIrcN33TXSurTY4ot3RiTBJ5E8QQtHnOfOu1cGAjoIAd0Nl3OpR3hkp2jXYmwTJuHQaAuBU69BGNY1"; console_julien.linux.!awh:: "password" string => "$6$K/dtcqh4$JiV7j4T6C7vxgOVWcYQXM0DKv0eH6l6qPpdLXxguTmme/ZZDZcBT/uVV3mT2TS4ylRgbNl5uckucYhON1hALn."; console_julien.freebsd:: "bash_path" string => "/usr/local/bin/bash"; "group_command" string => "/usr/sbin/pw groupadd"; "packages" slist => { "emacs25", "git", "mosh", "password-store", "tig", "rsync", "stunnel", "vim-lite", "weechat", }; "password" string => "$6$B8xpe/hghS1Q0RiO$yrjcmnLVKOCbCtk6hiW4.hIL3oO4McV/QezKGADUXMel8fwDhe9UfC8XPu58VbhIJTbeYcVSLSc1vrgfjQW/S1"; "secondary_groups" slist => { "wheel" }; classes: console_julien:: "group_julien_absent" not => groupexists("julien"); "group_docker_present" not => groupexists("docker"); methods: console_julien:: "console_julien" usebundle => install_package("$(this.bundle)", "$(julien.packages)"); commands: group_julien_absent:: "$(group_command)" args => "julien", classes => if_repaired("julien_group_julien_repaired"); users: console_julien.linux:: "julien" policy => "present", unless => "group_julien_absent", description => "Julien Dessaux", password => hashed_password("$(password)"), home_dir => "/home/julien", home_bundle => home_skel("julien"), group_primary => "julien", groups_secondary => { @(secondary_groups) }, shell => "$(bash_path)", classes => if_repaired("julien_user_julien_repaired"); reports: any:: "$(this.bundle): group julien repaired" ifvarclass => "julien_group_julien_repaired"; "$(this.bundle): user julien repaired" ifvarclass => "julien_user_julien_repaired"; }