From 40d19a6bbb907735f342ee5af1e952c994209957 Mon Sep 17 00:00:00 2001 From: Dominique Roux Date: Fri, 8 May 2015 10:03:03 +0200 Subject: [PATCH 01/12] Change from cat a variable to echo a variable --- cdist/conf/type/__block/manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdist/conf/type/__block/manifest b/cdist/conf/type/__block/manifest index 1fc9ec79..bf96181c 100755 --- a/cdist/conf/type/__block/manifest +++ b/cdist/conf/type/__block/manifest @@ -31,6 +31,6 @@ echo "$prefix" > "$block" if [ "$text" = "-" ]; then cat "$__object/stdin" >> "$block" else - cat "$text" >> "$block" + echo "$text" >> "$block" fi echo "$suffix" >> "$block" From 8c048a640d466b2b020f244c8818cdd0ed581cf9 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Fri, 8 May 2015 13:43:09 +0200 Subject: [PATCH 02/12] ++changes Signed-off-by: Nico Schottelius --- docs/changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/changelog b/docs/changelog index f71f8906..25370951 100644 --- a/docs/changelog +++ b/docs/changelog @@ -1,6 +1,9 @@ Changelog --------- +next: + * Type __block: Fix support for non stdin blocks (Dominique Roux) + 3.1.12: 2015-03-19 * Core: Support object ids '.cdist' (Nico Schottelius) * New type: __firewalld_rule (Nico Schottelius) From 62bd5898aa9a03b2941a1bba3a7028bb7e71a70f Mon Sep 17 00:00:00 2001 From: Daniel Heule Date: Fri, 8 May 2015 14:08:53 +0200 Subject: [PATCH 03/12] fix for older linuxes where gpasswd doesn't have the relevant options ... --- cdist/conf/type/__user_groups/gencode-remote | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote index 9f11dd16..ad83ed61 100755 --- a/cdist/conf/type/__user_groups/gencode-remote +++ b/cdist/conf/type/__user_groups/gencode-remote @@ -21,6 +21,20 @@ user="$(cat "$__object/parameter/user" 2>/dev/null || echo "$__object_id")" state_should="$(cat "$__object/parameter/state")" +os_version="$(cat "$__global/explorer/os_version")" +case "$os_version" in + SUSE\ Linux\ Enterprise\ Server\ 11*VERSION\ =\ 11*) + old=yes + addparam="-A" + delparam="-R" + ;; + *) + old=no + addparam="-a" + delparam="-d" + ;; +esac + mkdir "$__object/files" # file has to be sorted for comparison with `comm` sort "$__object/parameter/group" > "$__object/files/group.sorted" @@ -28,11 +42,11 @@ sort "$__object/parameter/group" > "$__object/files/group.sorted" case "$state_should" in present) changed_groups="$(comm -13 "$__object/explorer/group" "$__object/files/group.sorted")" - action="-a" + action="$addparam" ;; absent) changed_groups="$(comm -12 "$__object/explorer/group" "$__object/files/group.sorted")" - action="-d" + action="$delparam" ;; esac @@ -42,5 +56,9 @@ if [ -z "$changed_groups" ]; then fi for group in $changed_groups; do - echo "gpasswd $action \"$user\" \"$group\"" + if [ "$old" = "no" ]; then + echo "gpasswd $action \"$user\" \"$group\"" + else + echo "usermod $action \"$group\" \"$user\"" + fi done From 56168cda6550e6e0d5c543b2dfd78d494a47d513 Mon Sep 17 00:00:00 2001 From: Daniel Heule Date: Fri, 8 May 2015 14:21:39 +0200 Subject: [PATCH 04/12] fix for older linuxes where gpasswd doesn't have the relevant options ... --- cdist/conf/type/__user_groups/gencode-remote | 1 + 1 file changed, 1 insertion(+) diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote index ad83ed61..5ae391af 100755 --- a/cdist/conf/type/__user_groups/gencode-remote +++ b/cdist/conf/type/__user_groups/gencode-remote @@ -1,6 +1,7 @@ #!/bin/sh # # 2012 Steven Armstrong (steven-cdist at armstrong.cc) +# 2015 Daniel Heule ( hda at sfs.biz ) # # This file is part of cdist. # From e89ca14e66c10502ecf1c66454b8337372e2523d Mon Sep 17 00:00:00 2001 From: Daniel Heule Date: Mon, 11 May 2015 09:06:27 +0200 Subject: [PATCH 05/12] autodedtection of old usermod implementations ... --- .../type/__user_groups/explorer/oldusermod | 21 +++++++++++++++++++ cdist/conf/type/__user_groups/gencode-remote | 12 ++++------- 2 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 cdist/conf/type/__user_groups/explorer/oldusermod diff --git a/cdist/conf/type/__user_groups/explorer/oldusermod b/cdist/conf/type/__user_groups/explorer/oldusermod new file mode 100644 index 00000000..6ef25b13 --- /dev/null +++ b/cdist/conf/type/__user_groups/explorer/oldusermod @@ -0,0 +1,21 @@ +#!/bin/sh +# +# 2015 Heule Daniel (hda at sfs.biz) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +usermod --help | grep -q -- '-A group' && echo true || echo false diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote index 5ae391af..684e6ee7 100755 --- a/cdist/conf/type/__user_groups/gencode-remote +++ b/cdist/conf/type/__user_groups/gencode-remote @@ -1,7 +1,6 @@ #!/bin/sh # # 2012 Steven Armstrong (steven-cdist at armstrong.cc) -# 2015 Daniel Heule ( hda at sfs.biz ) # # This file is part of cdist. # @@ -21,20 +20,17 @@ user="$(cat "$__object/parameter/user" 2>/dev/null || echo "$__object_id")" state_should="$(cat "$__object/parameter/state")" +oldusermod="$(cat "$__object/explorer/oldusermod")" -os_version="$(cat "$__global/explorer/os_version")" -case "$os_version" in - SUSE\ Linux\ Enterprise\ Server\ 11*VERSION\ =\ 11*) +if [ "$oldusermod" = "true" ]; then old=yes addparam="-A" delparam="-R" - ;; - *) +else old=no addparam="-a" delparam="-d" - ;; -esac +fi mkdir "$__object/files" # file has to be sorted for comparison with `comm` From b2aeceae9107462d9eebd1c1940a653fdbe55f87 Mon Sep 17 00:00:00 2001 From: Daniel Heule Date: Mon, 11 May 2015 10:18:27 +0200 Subject: [PATCH 06/12] minor optimisation ... --- cdist/conf/type/__user_groups/gencode-remote | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cdist/conf/type/__user_groups/gencode-remote b/cdist/conf/type/__user_groups/gencode-remote index 684e6ee7..65404bfc 100755 --- a/cdist/conf/type/__user_groups/gencode-remote +++ b/cdist/conf/type/__user_groups/gencode-remote @@ -23,11 +23,9 @@ state_should="$(cat "$__object/parameter/state")" oldusermod="$(cat "$__object/explorer/oldusermod")" if [ "$oldusermod" = "true" ]; then - old=yes addparam="-A" delparam="-R" else - old=no addparam="-a" delparam="-d" fi @@ -53,9 +51,9 @@ if [ -z "$changed_groups" ]; then fi for group in $changed_groups; do - if [ "$old" = "no" ]; then - echo "gpasswd $action \"$user\" \"$group\"" - else + if [ "$oldusermod" = "true" ]; then echo "usermod $action \"$group\" \"$user\"" + else + echo "gpasswd $action \"$user\" \"$group\"" fi done From 27fd52f472bbeca8b5bc6b85ea56b04dbfdab738 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 12 May 2015 01:02:48 +0200 Subject: [PATCH 07/12] systemd for debian 8 Signed-off-by: Nico Schottelius --- cdist/conf/type/__consul_agent/manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cdist/conf/type/__consul_agent/manifest b/cdist/conf/type/__consul_agent/manifest index 198b83d6..f8cace94 100755 --- a/cdist/conf/type/__consul_agent/manifest +++ b/cdist/conf/type/__consul_agent/manifest @@ -195,7 +195,7 @@ case "$os" in init_sysvinit debian ;; 8) - init_sysvinit + init_systemd ;; *) echo "Unsupported Debian version $os_version" >&2 From 7d2fef4b0348d4d54de3ad7fa7bc737cb1b01b57 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 12 May 2015 01:03:33 +0200 Subject: [PATCH 08/12] ++changes Signed-off-by: Nico Schottelius --- docs/changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog b/docs/changelog index 25370951..41bcff02 100644 --- a/docs/changelog +++ b/docs/changelog @@ -3,6 +3,7 @@ Changelog next: * Type __block: Fix support for non stdin blocks (Dominique Roux) + * Type __consul_agent: Use systemd for Debian 8 (Nico Schottelius) 3.1.12: 2015-03-19 * Core: Support object ids '.cdist' (Nico Schottelius) From 28c534445b22df3966528f5ed42a4cf6ee0762da Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Tue, 12 May 2015 01:13:20 +0200 Subject: [PATCH 09/12] add Debian 8 support / systemd in __start_on_boot Signed-off-by: Nico Schottelius --- .../conf/type/__start_on_boot/gencode-remote | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/cdist/conf/type/__start_on_boot/gencode-remote b/cdist/conf/type/__start_on_boot/gencode-remote index 61b2b9fe..611e59fe 100755 --- a/cdist/conf/type/__start_on_boot/gencode-remote +++ b/cdist/conf/type/__start_on_boot/gencode-remote @@ -28,6 +28,7 @@ target_runlevel="$(cat "$__object/parameter/target_runlevel")" [ "$state_should" = "$state_is" ] && exit 0 os=$(cat "$__global/explorer/os") +os_version=$(cat "$__global/explorer/os_version") name="$__object_id" case "$state_should" in @@ -36,8 +37,19 @@ case "$state_should" in archlinux) echo "systemctl enable \"$name\"" ;; - debian|ubuntu) - echo "update-rc.d \"$name\" defaults >/dev/null" + debian) + case "$os_version" in + [1-7]*) + echo "update-rc.d \"$name\" defaults >/dev/null" + ;; + 8*) + echo "systemctl enable \"$name\"" + ;; + *) + echo "Unsupported version $os_version of $os" >&2 + exit 1 + ;; + esac ;; gentoo) @@ -55,6 +67,10 @@ case "$state_should" in echo "/etc/init.d/\"$name\" enable || [ -f /etc/rc.d/S??\"$name\" ]" ;; + ubuntu) + echo "update-rc.d \"$name\" defaults >/dev/null" + ;; + *) echo "Unsupported os: $os" >&2 exit 1 From 675321b44465f8506502b42590fd097f28e12a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=BCrlimann?= Date: Tue, 12 May 2015 17:54:00 +0200 Subject: [PATCH 10/12] Added a new manifest for installing firewall package --- cdist/conf/type/__firewalld_rule/manifest | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cdist/conf/type/__firewalld_rule/manifest diff --git a/cdist/conf/type/__firewalld_rule/manifest b/cdist/conf/type/__firewalld_rule/manifest new file mode 100644 index 00000000..d9a5ce87 --- /dev/null +++ b/cdist/conf/type/__firewalld_rule/manifest @@ -0,0 +1,25 @@ +#!/bin/sh +# +# 2011 Ramon Salvadó (rsalvado at gnuine dot com) +# 2012-2015 Steven Armstrong (steven-cdist at armstrong.cc) +# 2012 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# This type allows to configure the desired localtime timezone. + +__package firewalld From eba3c85b9cf935f5a37aec0ed7edeba39626054a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20H=C3=BCrlimann?= Date: Wed, 13 May 2015 00:26:05 +0200 Subject: [PATCH 11/12] Changed the header of firewall type --- cdist/conf/type/__firewalld_rule/manifest | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cdist/conf/type/__firewalld_rule/manifest b/cdist/conf/type/__firewalld_rule/manifest index d9a5ce87..5baf6da3 100644 --- a/cdist/conf/type/__firewalld_rule/manifest +++ b/cdist/conf/type/__firewalld_rule/manifest @@ -1,8 +1,6 @@ #!/bin/sh # -# 2011 Ramon Salvadó (rsalvado at gnuine dot com) -# 2012-2015 Steven Armstrong (steven-cdist at armstrong.cc) -# 2012 Nico Schottelius (nico-cdist at schottelius.org) +# 2015 David Hürlimann (david at ungleich.ch) # # This file is part of cdist. # From 156ff714304b95c7d342a30da50b4bafc4915e94 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Wed, 13 May 2015 08:28:27 +0200 Subject: [PATCH 12/12] ++changes Signed-off-by: Nico Schottelius --- docs/changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog b/docs/changelog index 41bcff02..7f3d8a9e 100644 --- a/docs/changelog +++ b/docs/changelog @@ -4,6 +4,7 @@ Changelog next: * Type __block: Fix support for non stdin blocks (Dominique Roux) * Type __consul_agent: Use systemd for Debian 8 (Nico Schottelius) + * Type __firewalld_rule: Ensure firewalld is present (David Hürlimann) 3.1.12: 2015-03-19 * Core: Support object ids '.cdist' (Nico Schottelius)