Commit graph

1379 commits

Author SHA1 Message Date
Darko Poljak
519eb60664 Fix exec/{local,remote} tests. Add exec/local test to make test. 2017-09-10 22:05:05 +02:00
1f00a35795 fixes + go version bump in __prometheus_exporter (#573) 2017-09-09 21:21:15 +02:00
Darko Poljak
3454da076f Add -l/--log-level option. Honor __cdist_loglevel env var. (#572)
Add -l/--log-level option, __cdist_loglevel -> __cdist_log_level; honor __cdist_log_level env var
2017-09-09 21:17:29 +02:00
Darko Poljak
f08ac264a0 pep8 2017-09-07 16:37:49 +02:00
Darko Poljak
57f15f9cce Make __cdist_loglevel value more expressive. (#571) 2017-09-07 16:36:23 +02:00
Darko Poljak
2e4c0d3465 Improve dry run logging. 2017-09-07 16:33:22 +02:00
Darko Poljak
97f6517715 Configuration fixes. 2017-09-07 16:13:46 +02:00
Darko Poljak
28d3466e9d Fix logging dry run line. 2017-09-07 12:32:04 +02:00
Darko Poljak
cb38354df3 Run cleanup commands in quiet mode for DEBUG, TRACE. 2017-09-07 12:10:17 +02:00
Darko Poljak
e0a4fc4ea7 verbose -> info 2017-09-07 11:58:19 +02:00
Darko Poljak
dd48c82656 Log 'Processing' line even if dry run. 2017-09-07 11:30:02 +02:00
Darko Poljak
7141e67d51 Merge pull request #570 from darko-poljak/debug-to-cdist_loglevel
__debug -> __cdist_loglevel
2017-09-07 10:09:57 +02:00
Darko Poljak
92488e83d6 __debug -> __cdist_loglevel 2017-09-06 21:59:57 +02:00
Philippe Grégoire
b2fb38d1f4
__package_pkg_openbsd: fix pkg_version explorer
The pkg_version explorer will fail to properly detect if a package
is installed when a package's name is present in the description of
a package (as returned by pkg_info).

Currently, trying to install libtool fails due to incorrect parsing:

    $ pkg_info | grep libtool
    libltdl-2.4.2p1     GNU libtool system independent dlopen wrapper

Additionally, trying to install nagios results in the following output:

    $ pkg_info | grep nagios
    nagios-4.0.8p3-chroot host and service monitor
    nagios-web-4.0.8p2-chroot cgis and webpages for nagios

This commit fixes detection by properly parsing pkg_info's output.
Specifically, descriptions are ignored and package names are properly
extracted.
2017-09-04 13:07:49 -04:00
uqam-fob
0dd5411216 __package_pkg_openbsd: fix use of --name (#568)
Fixes the improper use of the file holding the value of the 'name'
option.
2017-09-03 23:27:27 +02:00
Darko Poljak
fb3cd98b54 Minor fixes to man page. 2017-09-02 21:38:13 +02:00
b8a1ad0ebd Improve __daemontools on FreeBSD (#567)
Improve __daemontools on freebsd
2017-09-02 21:25:17 +02:00
a9f338b6a5 new type: __prometheus_exporter (#566) 2017-09-02 21:23:48 +02:00
7564038f04 fixes to __prometheus_{server,alertmanager} (#565) 2017-09-02 21:22:33 +02:00
Darko Poljak
99133219bc Add another test case. 2017-09-02 08:40:23 +02:00
Sven Wick
ed55d01b35 Update machine_type (#564)
detect kvm on proxmox
2017-09-01 20:56:48 +02:00
Darko Poljak
5213f343c0 pep8 2017-09-01 14:11:58 +02:00
Darko Poljak
136f2ecd87 Add helpers for cdist config/install integration. (#551)
Implement simple integration API.
2017-09-01 14:08:50 +02:00
Darko Poljak
4af3c0c6d5 Fix empty conf_dir configuration value. 2017-08-30 23:57:47 +02:00
Darko Poljak
2f10353156 Fix configuration bugs. 2017-08-30 23:11:10 +02:00
Darko Poljak
bdee7273af Configfile (#559)
Add cdist configuration/config file support.
2017-08-30 23:02:17 +02:00
Darko Poljak
eae399b025 Fix removing ssh key that is last one in the file. 2017-08-30 09:27:06 +02:00
Steven Armstrong
3c3b29f710 allow hostnamectl to fail silently
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-08-29 22:50:47 +02:00
Steven Armstrong
0114001627 remember default __remote_{copy,exec} so we can use it ourself in custom __remote_{copy,exec} scripts
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-08-29 22:31:30 +02:00
Steven Armstrong
04c8415060 use __remote_{exec,copy} instead of plain ssh/scp in remote exec scripts
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-08-29 21:49:47 +02:00
Philippe Grégoire
0e3c7545cc
__user_groups: Support OpenBSD
OpenBSD's usermod(8) interface is similary to NetBSD's.
This commit makes __user_groups support it explicitly.

https://man.openbsd.org/usermod.8
http://netbsd.gw.com/cgi-bin/man-cgi?usermod++NetBSD-current
2017-08-27 08:58:16 -04:00
Darko Poljak
6751349d21 Merge pull request #561 from uqam-fob/pkg-openbsd-installurl
__package_pkg_openbsd: support using /etc/installurl
2017-08-27 14:23:11 +02:00
Philippe Grégoire
d4f34a3f40
__package_pkg_openbsd: support the empty flavor
Adds support for specifying an empty flavor by passing --flavor "".
2017-08-26 10:59:04 -04:00
Philippe Grégoire
56adfd4dee
__package_pkg_openbsd: support using /etc/installurl
In 6.1, OpenBSD introduced installurl(5), which contains
the URL the sets where installed from during install or upgrade.
The content of this file is used by pkg_add(1) if PKG_PATH is
not defined.

This commit changes the behavior of __package_pkg_openbsd to omit
setting PKG_PATH to a hard-coded value if --pkg_path is not provided.
This, in turn, makes pkg_add(1) use installurl(5).
2017-08-26 09:42:36 -04:00
Mark Verboom
6f04c9bfce Explorer pipes output of apt-key list, which always generates:
Warning: apt-key output should not be parsed (stdout is not a terminal)
on stderr. Redirect stderr of apt-key to /dev/null to prevent output in
cdist run.
2017-08-25 14:31:32 +02:00
Darko Poljak
c6d00019a8 Merge pull request #556 from uqam-fob/explorer-init-pgrep
explorer/init/Linux: use pgrep instead of ps
2017-08-25 11:31:42 +02:00
Darko Poljak
11a974aeff Merge pull request #557 from uqam-fob/type-user-explorers
__user: explore with /etc files
2017-08-25 11:30:32 +02:00
Darko Poljak
d9cf1590b8 Fix spelling. 2017-08-25 10:50:11 +02:00
Steven Armstrong
4851c0517f inherit log level from cdist install during nested cdist config
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-08-24 14:43:26 +02:00
Darko Poljak
f368539447 Some pylint cleaning. 2017-08-22 10:58:30 +02:00
Philippe Grégoire
31e5c97c55
use command(1) to get executable's path 2017-08-21 10:51:55 -04:00
Philippe Grégoire
997fdd8ac4
fix typo in group entry extraction 2017-08-20 15:13:01 -04:00
Philippe Grégoire
a915baa73b
__user: explore with /etc files
getent(1) is a utility available where Name Service Switch (NSS)
is available. Many modern operating systems support it, but that
may not be the case of all (e.g. embedded systems).

This commit modifies the __user type explorers to check the
traditional files instead of relying solely on the availability
of getent(1).

- Makes the group explorer use /etc/group
- Makes the passwd explorer use /etc/passwd
- Makes the shadow explorer use /etc/shadow

Implementation note

"getent shadow" does not support querying an entry using a uid
since it does not store that information. Since the shadow explorer
uses __object_id, the passwd explorer does not check if __object_id
matches an entry by uid. This behavior ensures consistent, transparent
behavior of the type. The group explorer, on the other hand, handles
group names and uids; like always.
2017-08-20 12:10:54 -04:00
Philippe Grégoire
ebe0c0d66d
make sure we continue on errors 2017-08-20 11:12:30 -04:00
Philippe Grégoire
5646a66f6c
explorer/init/Linux: replace ps by pgrep
BusyBox's version of ps does not support the -o option.
On Linux systems, use pgrep -P0 -l to get the name of
pid 1.
2017-08-20 11:06:07 -04:00
Philippe Grégoire
2b9bf3de24
replace grep+sed by awk 2017-08-19 18:19:17 -04:00
Philippe Grégoire
e88e9c357f
fix formatting 2017-08-19 16:49:19 -04:00
Philippe Grégoire
69c6de9f9c
explorer/os: get ID from /etc/os-release
/etc/os-release was introduced by systemd[1] and is now
more and more common; even on systems without systemd (e.g. lede).
In addition to detecting the OS based on specific attributes,
this file provides the ID marker to describe the OS.

This commit adds support for OS detection via /etc/os-release.
According to [2], it is already lowercase.

[1] http://0pointer.de/blog/projects/os-release
[2] https://www.freedesktop.org/software/systemd/man/os-release.html
2017-08-19 16:41:50 -04:00
Darko Poljak
ceb97fd0ee Fix for mistake in 982bb286f4. 2017-08-19 19:12:30 +02:00
Darko Poljak
982bb286f4 Cleanup options' help and cdist man page. 2017-08-17 08:24:58 +02:00
Philippe Gregoire
61b52ac806 Set default remote_cmds_cleanup_pattern
Fixes an exception when --remote-copy and --remote-exec are used.
2017-08-14 16:13:57 -04:00
Philippe Gregoire
7b0b3d9415 Fix remote cmds cleanup
When --remote-copy and --remote-exec are provided,
args.remote_cmds_cleanup_pattern is not set.

This patches fixes the evaluation of args.remote_cmds_cleanup_pattern
and prevents cdist from throwing an exception when --remote-copy
and --remote-exec are used.
2017-08-14 14:25:19 -04:00
Darko Poljak
b6467e716e Merge remote-tracking branch 'ungleich/master' into jobs-locking 2017-08-13 12:27:57 +02:00
Darko Poljak
75fe3272b3 Add file locking for -j parallel execution. 2017-08-13 12:26:20 +02:00
Darko Poljak
87fe52ea61 Default logging level is WARNING. 2017-08-12 23:02:31 +02:00
Darko Poljak
314a931b84 Respect cdist log level in emulator. 2017-08-12 21:40:23 +02:00
Darko Poljak
59782ad64e Fix unit test. 2017-08-11 01:20:45 +02:00
Darko Poljak
2b0e8160cf Merge pull request #543 from darko-poljak/ssh-mux-sigpipe
Fix ssh connection multiplexing race condition #542
2017-08-10 23:42:16 +02:00
Darko Poljak
8bb70055f4 Merge branch 'master' into archiving 2017-08-10 19:11:35 +02:00
Darko Poljak
ca1cc0f64a object_id = '/' is invalid 2017-08-10 19:08:44 +02:00
Darko Poljak
68cb13881f Add archiving support. 2017-08-09 16:56:02 +02:00
Nico Schottelius
260303dd14 Fix gpasswd call in __user_groups: order incorrect
From the manpage:

       -a, --add user
           Add the user to the named group.

       -d, --delete user
           Remove the user from the named group.
2017-08-03 15:11:35 +02:00
Darko Poljak
1b0f560608 Add missing args to method call. 2017-07-27 09:51:23 +02:00
Darko Poljak
0a85d913cc Optimize dir transfer. 2017-07-27 09:49:06 +02:00
Darko Poljak
0d734c872d Fix log var assignment. 2017-07-27 09:36:00 +02:00
Darko Poljak
3db987b913 Merge pull request #549 from 4nd3r/__timezone
__timezone: always exit 0
2017-07-27 09:01:15 +02:00
Ander Punnar
b7b1101f11 always exit 0 2017-07-27 01:28:26 +03:00
Darko Poljak
23fbabe303 Further improve parallel execution. 2017-07-26 17:39:07 +02:00
Darko Poljak
d1a044cc23 multiprocessing.Pool -> concurrent.futures.ProcessPoolExecutor 2017-07-26 12:01:19 +02:00
Darko Poljak
7c7a98d083 pep8 2017-07-25 12:43:54 +02:00
Darko Poljak
32838a096d Refine inventory logging to adhere new cdist logging. 2017-07-25 12:40:12 +02:00
Darko Poljak
0af64c01bf Add -p HOST_MAX argument. 2017-07-25 11:12:18 +02:00
Darko Poljak
bb2cc68169 Fix broken text 2017-07-24 19:13:40 +02:00
Darko Poljak
4a54d1420e Remove unwanted fixme 2017-07-24 19:12:43 +02:00
Darko Poljak
9b5220a29c Merge pull request #546 from greendeath/master
Updated to docker-compose version 1.14
2017-07-21 21:49:02 +02:00
Dominique Roux
5ccfec9c18 Updated to docker-compose version 1.14 2017-07-21 21:18:16 +02:00
Darko Poljak
060ddc2a17 Merge remote-tracking branch 'ungleich/master' into ssh-mux-sigpipe 2017-07-21 17:23:07 +02:00
6bfe02094d year is 2017 2017-07-21 10:23:05 +03:00
2c56622eeb check file first 2017-07-21 10:22:54 +03:00
c706b9eefb check current timezone before doing anything 2017-07-21 10:19:02 +03:00
Darko Poljak
e2a1519332 Merge inventory from beta branch. 2017-07-20 22:04:44 +02:00
Darko Poljak
a20b7167cd pep8 2017-07-19 07:58:14 +02:00
Darko Poljak
01d7f63fcb Merge remote-tracking branch 'ungleich/master' into ssh-mux-sigpipe 2017-07-19 07:55:19 +02:00
Darko Poljak
2beb55be54 Remove FIXME comment due to fix appliance 2017-07-19 07:52:57 +02:00
Darko Poljak
126a1812a5 Fix parallel object prepare and run steps. Add nonparallel type marker. 2017-07-15 22:18:20 +02:00
Darko Poljak
31899b2263 Add missing shebangs. 2017-07-15 22:16:25 +02:00
Darko Poljak
b50e605441 Merge pull request #544 from darko-poljak/ignore-dot-files-under-conf-types
Ignore directory entries that begin with dot('.').
2017-07-14 14:49:20 +02:00
Steven Armstrong
1fe12f81a9 Merge branch 'feature/install' 2017-07-07 02:12:38 +02:00
Steven Armstrong
d9a358bdf3 add forgotten symlink
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-07-07 02:10:06 +02:00
Darko Poljak
6b3b5c735e Merge pull request #541 from 4nd3r/__file
fix __file
2017-07-06 22:56:54 +02:00
Darko Poljak
f9b632eebb Improve listdir. 2017-07-06 17:22:25 +02:00
Darko Poljak
80c3dd7572 Ignore directory entries that begin with dot('.'). 2017-07-06 13:30:57 +02:00
Darko Poljak
9c914308f6 Fix ssh connection multiplexing race condition #542
Increase ControlPersist to 2h.
After host run run ssh mux master exit command.
If custom remote exec/copy is specified then do nothing.
2017-07-06 12:43:17 +02:00
Steven Armstrong
9fe2420547 also log start of config run
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-07-05 16:40:02 +02:00
Steven Armstrong
a1d73f7281 log changing object as Processing instead of Updating
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-07-04 23:49:43 +02:00
Steven Armstrong
f6e1174adb start moving info log messages to verbose
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-07-04 23:49:43 +02:00
Darko Poljak
cef1d215b2 Finally remove deprecated -d/--debug option. 2017-07-04 23:49:43 +02:00
Darko Poljak
015861e63b pep8 2017-07-04 23:49:43 +02:00
Darko Poljak
a37d286d67 Suppress subprocess script output in quiet mode. 2017-07-04 23:49:43 +02:00
Darko Poljak
a722f3c634 3rd iteration of logging cleanup. 2017-07-04 23:49:43 +02:00
Darko Poljak
127c05a882 2nd iteration of logging cleanup. 2017-07-04 23:49:43 +02:00
Darko Poljak
248656b81f First iteration of logging cleanup. 2017-07-04 23:49:43 +02:00
Darko Poljak
c63ab44c9c Define better warning facility. 2017-07-04 23:49:43 +02:00
Steven Armstrong
01ca5910ec increase ControlPersist to 30 to workaround #542
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-07-04 23:49:27 +02:00
6a6716035b one space too much 2017-07-04 19:25:08 +03:00
0e8302c204 if no --source, then create only if there's no file 2017-07-04 19:23:51 +03:00
49f9760eac +x 2017-07-03 15:18:27 +03:00
df437851f0 add -e 2017-07-02 12:19:40 +03:00
e4d9f78349 grep fixed string 2017-07-02 12:17:07 +03:00
c052e507eb shellcheck __apt_mark 2017-07-02 12:17:07 +03:00
Darko Poljak
138705e3dc Code improvements. 2017-07-02 00:32:43 +02:00
Darko Poljak
2a9bd77550 Merge custom cache path pattern from beta branch. 2017-07-01 23:59:51 +02:00
Darko Poljak
b7873abf07 Improve english based on Mesar Hameed's contribution. 2017-07-01 09:28:41 +02:00
Darko Poljak
9aa4465718 If script is executable then execute it, if not then assume it is a shell script. 2017-06-28 13:57:48 +02:00
Darko Poljak
62378dc8b9 Change shebang to #!/bin/sh -e 2017-06-28 13:19:32 +02:00
Darko Poljak
fc97381c6e Add missing shebang. 2017-06-28 12:54:10 +02:00
Darko Poljak
9312bcb6b0 chmod +x *manifest *gencode-* 2017-06-28 12:52:10 +02:00
Darko Poljak
f53615f583 Merge pull request #534 from asteven/feature/remote-out-dir
need a way to set remote.base_path from the command line
2017-06-27 17:56:56 +02:00
Steven Armstrong
9cee230ef5 alphabetical order ftw
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 17:47:30 +02:00
Steven Armstrong
93ccf925cd need a way to set remote.base_path from the command line
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:36:26 +02:00
Steven Armstrong
574f36f593 fix order of arguments
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
b8fcd30a37 support for bind mounts
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
c740c96890 set log level for cdist config based on env vars
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
1627b58cfc for bind mount also have to prefix device
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
e74d2be2d4 add support for bind mounting
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
efd9351500 document new parameters: device, minor
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
86a61bbcff need to pass a known suffix from outside
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
058e4d757b disabel debug log
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
a495a20d95 uefi support
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
d34843347a add __install_directory type
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
f9d371c6e3 use sysrq to reboot
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
42e197a5ba use the force when creating swap
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:33:34 +02:00
Steven Armstrong
9ee0de7c8b make uefi boot work
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:32:25 +02:00
Steven Armstrong
2ce00f3357 fix syntax error
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
8305477e01 fix typo
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
ce82e32c59 handle resolv.conf
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
4547d2efa1 properly escape single quotes
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
aea9747918 mount/umounting a chroot should not mess with resolv.conf at all
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
73cad9dee2 backcompat
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
1d42e4afcb bind mount /etc/resolv.conf instead of overwriting/removing
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
c6e4888c84 support for centos7
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
fd6258c90e unsure apt index is up2date
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
d05f11b0b8 deal with that stinkin cdist marker thinggy
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
9ad203c744 deal with that stinkin cdist marker thinggy
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
bb62787c7c deal with that stinkin cdist marker thinggy
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
f97e6c42c7 no point generating grub.conf at this time, there is no kernel installed yet
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
5417471dff add support for centos
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
2bd48f1c8d make nuking mdadm/lvm actually work
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
49dfcf4885 first remove lvm, then mdadm
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00
Steven Armstrong
c1141453fe fix quoting
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-06-27 10:27:40 +02:00