Commit graph

1973 commits

Author SHA1 Message Date
Ander Punnar
1c152f0acb fix disks explorer (#753)
* fix disks explorer

* fix SC2230

* exclude floppies

* update comment about excluded floppies

* add link to linux documentation about device majors

* try to support netbsd

* update possible netbsd disk devices
2019-04-12 20:41:05 +02:00
Darko Poljak
279aada5db Fix broken quiet mode
Resolves #754
2019-04-12 09:13:25 +02:00
204a572709 __link: add messaging 2019-04-11 13:59:15 +03:00
Darko Poljak
1ba5f6276e
Merge pull request #748 from markasoftware/ufw
UFW (Uncomplicated FireWall)
2019-04-11 08:19:37 +02:00
Mark Polyakov
0ce96f0860 Added __ufw and __ufw_rule. 2019-04-10 19:45:34 -07:00
Darko Poljak
671bb82a46 Fix shellcheck issues 2019-04-09 22:44:40 +02:00
Darko Poljak
f6b318bb00 Fire onchange for present and exists states
Even if no attribute is changed.
Fixes #750.
2019-04-09 22:23:21 +02:00
Steven Armstrong
88513e6693 __ssh_authorized_keys: properly handle multiple --option parameters, fixes #393
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2019-04-07 12:17:19 +02:00
Darko Poljak
b47c6e3fe4 Fix shellcheck SC2002 2019-04-06 10:52:32 +02:00
decd80bf5d be more explicit 2019-04-04 00:20:46 +03:00
da6a22c71a new type: __check_messages 2019-04-03 01:11:03 +03:00
668dc83632 do not exit with non-zero if path does not exist or not directory 2019-04-02 17:52:00 +03:00
Darko Poljak
a60ce2fcfb
Merge pull request #744 from 4nd3r/__rm
new type: __clean_path
2019-03-30 12:36:38 +01:00
5f76bd5655 new type: __clean_path 2019-03-30 13:21:13 +02:00
Darko Poljak
6eb0aa4aeb
Merge pull request #743 from 4nd3r/__file_onchange
add --onchange to __file
2019-03-29 22:57:16 +01:00
c6fd43da81 add --onchange to __file, because having to use __config_file just for that feels redundant 2019-03-29 23:43:09 +02:00
0f6fe4764b add --onchange to __line 2019-03-28 23:31:38 +02:00
Silas
28e2b058a4 Use portable -p instead of --tmpdir for mktemp
-p is equivalent to --tmpdir, but more portable, since it works across
GNU/Linux and *BSDs
2019-03-25 18:36:55 -03:00
Daniel Néri
dbcf7d5543 explorer/disks: Add support for OpenBSD 2019-03-19 23:13:24 +01:00
Daniel Néri
0fc64a951c explorer/cpu_cores: Add support for OpenBSD 2019-03-19 23:09:01 +01:00
Daniel Néri
15ab7c0810 Implement "__start_on_boot --state absent" for OpenBSD 2019-03-16 17:23:19 +01:00
Darko Poljak
a40a81d36f To keep original echo intentionally disable SC2046 too 2019-02-15 20:44:03 +01:00
Darko Poljak
867b9cb102 shellcheck: SC2236: use -n instead of ! -z 2019-02-15 20:44:03 +01:00
Darko Poljak
51fa8af6b7 pycodestyle 2019-02-15 20:35:32 +01:00
Darko Poljak
a3a7219ad6
Merge pull request #734 from dheule/fix_zypper_types_echo
readd the use of echo in my explorers
2019-02-13 18:14:49 +01:00
Daniel Heule
df693b9f47 added # shellcheck disable=SC2005 where we need the echo in __zypper explorers 2019-02-13 11:30:55 +01:00
Darko Poljak
7be3482549
Merge pull request #735 from greendeath/master
Added a startup flag for prometheus alertmanager
2019-01-28 19:13:23 +01:00
Darko Poljak
a77983aead Reorganize parsers right 2019-01-28 19:09:36 +01:00
Dominique Roux
67c3c8ca12 Added a startup flag for prometheus alertmanager
aded the flag --cluster.advertise-address since it is needed for startup on a machine
which does not provide a private v4
2019-01-28 09:32:02 +01:00
Daniel Heule
0bdd590344 readd the use of echo in my explorers
this is nessessary for
 remove blanks in output (strip)
 catch exit codes of zypper (for example if no repo is defined at all)
2019-01-22 13:30:06 +01:00
Darko Poljak
0cb3cbae1b Remove unused explorer 2018-12-21 22:23:41 +01:00
sideeffect42
57a3257a26
Merge branch 'master' into refactor-openbsd-pkg-type 2018-12-14 21:33:42 +01:00
Darko Poljak
fccbcb2eb8
Merge pull request #732 from sideeffect42/package-messages
All package types send messages upon installation/removal
2018-12-14 16:18:20 +01:00
Takashi Yoshi
a7f1eda328 [type/__package_emerge] Send error messages to stderr 2018-12-14 15:54:54 +01:00
Takashi Yoshi
aa456ab6c1 [type/__package_pkg_openbsd] Clean up code 2018-12-14 15:51:47 +01:00
Takashi Yoshi
498628d16a [type/__package_pkg_openbsd] Misc. fixes and improvements 2018-12-14 15:49:23 +01:00
Takashi Yoshi
827081f8a2 [type/__package_pkg_openbsd/explorer/pkg_version] Fix version extraction
The earlier code stripped away all non-numeric parts of the version number.

E.g. "5.6.38p0" would be trimmed to "5.6.38"
2018-12-14 15:49:06 +01:00
Takashi Yoshi
c492c53a98 [type/__package_pkg_openbsd] Send error messages to stderr 2018-12-14 15:46:31 +01:00
Takashi Yoshi
9acb9d1f3a [type/__sysctl] Group entries 2018-12-14 14:12:33 +01:00
Takashi Yoshi
92610fe76c [type/__sysctl] Add support for Alpine Linux, Gentoo and OpenWrt 2018-12-14 13:51:44 +01:00
Takashi Yoshi
45ff67c0f5 [type/__sysctl] Add Mac OS X support 2018-12-14 13:51:44 +01:00
Takashi Yoshi
566feba5b1 [type/__sysctl] Add NetBSD support 2018-12-14 13:51:44 +01:00
Takashi Yoshi
b36716ef36 [type/__sysctl] Add OpenBSD support 2018-12-14 13:51:44 +01:00
Takashi Yoshi
183d57d6d2 [type/__sysctl] Fix spelling of FreeBSD 2018-12-14 12:43:57 +01:00
Jonas Weber
d4bb114468 Remove usage of CDIST_ORDER_DEPENDENCY 2018-12-13 13:26:40 +01:00
Jonas Weber
a7f4c8d773 Allow installing specific Docker-CE version 2018-12-13 13:23:49 +01:00
8ad93a29c9 update for debian version 9 2018-12-12 01:40:39 +09:00
Takashi Yoshi
ccdbf1a31c [type/__package_emerge_dependendencies] Send messages when a dependency is installed 2018-12-07 16:55:49 +01:00
Takashi Yoshi
7e9dce0ceb [type/__package_*] Print installed/removed messages
Up-/downgraded packages will send an "installed" message.
2018-12-07 16:53:21 +01:00
Darko Poljak
45d1037491 [__postgres_role] Revert parts of a34060d703
Broken syntax fixed
2018-12-05 16:51:37 +01:00
Darko Poljak
0491b5b8db Revert "[__postgres_role] Revert parts of a34060d7035e84ff8f70d1e8d5bded7a1bfd71b3"
This reverts commit c85dfbdb10.
2018-12-05 16:41:22 +01:00
Nico Schottelius
c85dfbdb10 [__postgres_role] Revert parts of a34060d703
Broken syntax fixed
2018-12-05 13:14:19 +01:00
Olliver Schinagl
71ceba4ac5
type: Add new type __ping
When starting with cdist, the documentation and examples can be
overwheliming. Further more, sometimes one would only want to do a
simple test to see if the basics are working. One such example currently
is to create a simple remote file. While this is a nice and simple
example, an even simpler example would be to just see if we can 'ping'
the host.

Other configuration management tools also seem to have this as a basic
starting command.

This thus allows to do:
echo __ping | cdist config --initial-manifest - <host>

as the most basic, most simple command to 'test' things with, without
having lingering files to boot.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2018-11-26 20:37:43 +01:00
Dimitrios Apostolou
2cae33f6d6 Fix __group type failing with --gid
The command `echo -- -g` prints `-- -g` so the generated `groupadd` command
was syntactically incorrect and failing. Solution was to remove `--` since
echo command does not understand it, and add instead an extra space before
`-g` to avoid echo interpreting it as a flag.
2018-11-18 01:30:40 +01:00
Darko Poljak
d11174f2b7 Add missing ;; in case item. 2018-11-03 19:21:20 +01:00
sideeffect42
a34060d703 Improve OpenBSD support (#720)
* [type/__timezone] Whitelist OpenBSD

OpenBSD ships /etc/localtime and /usr/share/zoneinfo by default.

* [type/__postgres_{database,role}] Add explorer support for OpenBSD

On OpenBSD the "postgres" user is called "_postgresql".
The "postgres" database must me specifically specified as it differs from the
user name.

* [type/__postgres_{database,role}] Add gencode support for OpenBSD

On OpenBSD the "postgres" user is called "_postgresql".
The "postgres" database must me specifically specified when using psql as it
differs from the user name.

* [type/__postgres_role] Query DB if role exists instead of screen scaping

* [type/__postgres_database] Query DB if database exists instead

* [type/__postgres_{database,role}] Add user for NetBSD

* [type/__postgres_extension] Add support for OpenBSD and NetBSD

* [__ssh_authorized_key] Add OpenBSD support to entry explorer

Make sure to adhere to re_format(7) for OpenBSD compatibility.

https://man.openbsd.org/re_format.7

* [type/__start_on_boot] Add support for OpenBSD
2018-11-03 19:17:56 +01:00
Darko Poljak
e860f1c792 Determine source_is only if destination is symlink. 2018-11-02 14:35:06 +01:00
Darko Poljak
6895ad0207 Fix post-shellcheck bug. 2018-10-24 18:26:33 +02:00
Darko Poljak
8c03518962 Fix spelling. 2018-10-17 07:09:59 +02:00
Darko Poljak
5480c22020 Adapt object_parameters before checking conflicting parameters. 2018-10-13 16:11:51 +02:00
Darko Poljak
151edc6398 Fix DirectoryDict getitem. 2018-10-12 19:08:36 +02:00
c5098dfcc5 fix [SC1117] (explicitly excaping \n) 2018-10-12 14:05:38 +02:00
c950dd1e90 quote "remote user", ensuring user is handled as one parameter 2018-10-12 14:05:38 +02:00
5761939fa9 add new messages to man.rst 2018-10-12 14:05:38 +02:00
c995d08ce2 redirect stdout+stderr of userdel
If no mail-spoolfile exists for the user the error reporting was
visible in the cdist-run.
2018-10-12 14:05:38 +02:00
a1bf381370 add messaging 2018-10-12 14:05:38 +02:00
409d736339 explicitly check for absent to handle state-typos gracefully 2018-10-12 14:05:38 +02:00
Dominique Roux
dd5a45a809 [CONSUL] add newest versions 2018-10-12 11:42:42 +02:00
Darko Poljak
faed292a4e Rule should be split. 2018-10-10 15:01:03 +02:00
Darko Poljak
7a9dea9754 Improve quoting. 2018-10-10 12:56:48 +02:00
Darko Poljak
610deba454 Improve quoting. 2018-10-10 12:52:50 +02:00
Darko Poljak
8669ccb9c1 Improve shell code. 2018-10-10 12:43:39 +02:00
Darko Poljak
53300b1004 Fix after shellcheck. 2018-10-10 12:43:39 +02:00
Darko Poljak
dcb4395909 Resolve custom remote copy/exec shellcheck (non-)issues. 2018-10-10 12:43:39 +02:00
Darko Poljak
0f31a550cc Fix SC2012. 2018-10-10 12:43:39 +02:00
Darko Poljak
c58e12a4b9 shellcheck on /files/ scripts. 2018-10-10 12:43:39 +02:00
Darko Poljak
0b58ab8c83 Bypass Configuration singleton from other tests if any. 2018-10-10 12:34:31 +02:00
Darko Poljak
9afc17f3f8 Make cdist.test return exit code. 2018-10-10 10:37:29 +02:00
Nico Schottelius
256c8324a0 Merge branch 'master' of github.com:ungleich/cdist
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>
2018-10-09 19:43:41 +02:00
Darko Poljak
69790ec138 Fix typing error. 2018-10-08 15:43:42 +02:00
Darko Poljak
0458f66c96 Resolve SC2012. 2018-10-08 15:35:29 +02:00
Darko Poljak
ec186673bf Add TODO markers for SC2012. 2018-10-07 19:48:31 +02:00
Darko Poljak
638ddd95d6 Fix problems found by sellcheck in type explorers. 2018-10-07 19:41:44 +02:00
Darko Poljak
334201b945 Fix remaining shellcheck problems. 2018-10-07 10:22:11 +02:00
Darko Poljak
e9b823bc39 Better fixes. 2018-10-07 10:22:11 +02:00
Darko Poljak
a78baccc82 Fix SC2154. Note: ignoring __<name> vars. 2018-10-07 10:22:11 +02:00
Darko Poljak
a9f27beb98 Fix SC1117. 2018-10-07 10:22:11 +02:00
Darko Poljak
83806e767a Disable SC1091 where appropriate. 2018-10-07 10:22:11 +02:00
Darko Poljak
a46016242b
Merge pull request #708 from darko-poljak/shellcheck-various
Fix for various problems (shellcheck)
2018-10-06 15:15:38 +02:00
Darko Poljak
f039b0e6e5 Fix SC2030,SC2031. 2018-10-06 08:36:06 +02:00
Darko Poljak
68fad03a6b Fix SC2120, SC2119. 2018-10-05 15:18:59 +02:00
Darko Poljak
b284bafbee grep directly on the explorer file 2018-10-05 15:14:03 +02:00
Darko Poljak
02f39bcf6f Fix SC2028. 2018-10-05 15:08:25 +02:00
Darko Poljak
0d80b4473b Disable SC2031 for the single incident. 2018-10-05 15:04:22 +02:00
Darko Poljak
bf270b6f9c Fix SC2044. 2018-10-05 13:05:01 +02:00
Darko Poljak
a369acea72 Fix SC2021. 2018-10-05 12:52:44 +02:00
Darko Poljak
644ec85d80 Fix SC2162. 2018-10-05 12:50:01 +02:00
Darko Poljak
16159d8fca Fix SC2145. 2018-10-05 12:32:56 +02:00
Darko Poljak
596f3cf227 Disable SC2119,SC2120 where appropriate. 2018-10-05 12:31:05 +02:00
Darko Poljak
9b567ed8f7 Fix SC2230. 2018-10-05 12:27:43 +02:00
Darko Poljak
8cea8e67aa Disable SC2031 where appropriate. 2018-10-05 12:25:40 +02:00
Darko Poljak
b120a813a2 Disable SC2030 where appropriate. 2018-10-05 12:24:03 +02:00
Darko Poljak
7b17ad4733 Fix SC2143. 2018-10-05 12:21:59 +02:00
Darko Poljak
e46420e7f5 Fix SC1090. 2018-10-05 12:19:16 +02:00
Darko Poljak
2f7b8e6db9 Fix SC2153. 2018-10-05 12:16:27 +02:00
Darko Poljak
73d0a5bbbe Fix SC2235. 2018-10-05 12:14:51 +02:00
Darko Poljak
73acb35a8a Fix SC2196. 2018-10-05 12:04:45 +02:00
Darko Poljak
28889ef38a Disable SC2028 where intended. 2018-10-05 12:02:10 +02:00
Darko Poljak
ed542cc7cb Fix SC2046. 2018-10-05 11:57:31 +02:00
Darko Poljak
b25aff17c6 Disable SC2039 where appropriate. 2018-10-05 11:49:28 +02:00
Darko Poljak
a601fa91d9 Fix SC2116. 2018-10-05 11:34:10 +02:00
Darko Poljak
3b6d759660 Disable SC2016 check. 2018-10-05 10:32:38 +02:00
Darko Poljak
0cb127822f
Merge pull request #706 from darko-poljak/SC2164
Fix SC2164
2018-10-05 10:28:04 +02:00
Darko Poljak
49bb041330
Merge pull request #696 from thriqon/shellcheck-party-SC2086
Fix SC2086 on all scripts
2018-10-05 10:26:53 +02:00
Darko Poljak
c01cf38660 Fix SC2164 2018-10-04 23:10:42 +02:00
Darko Poljak
68b6477fe3
Merge pull request #705 from thriqon/shellcheck-party-various
Fix various shellcheck issues (SC2215, SC2059, SC2155, SC2091)
2018-10-04 22:39:05 +02:00
Darko Poljak
f0fb5215e8
Merge pull request #700 from thriqon/shellcheck-party-SC2034
Remove unused variables (SC2034)
2018-10-04 22:35:08 +02:00
Jonas Weber
34b571b7d9 Fix SC2091 (execute result of condition)
For some reason, the echo|grep pattern was enclosed four times in a $()
operation. Nothing happened, since grep is always invoked with -q
(quiet, nothing printed to stdout).
2018-10-04 22:23:48 +02:00
Jonas Weber
bcd7fbbcc4 Fix SC2155 (directly export computed variables) 2018-10-04 22:23:48 +02:00
Jonas Weber
a0db375f91 Disable SC2059 (printf injection) for staged_file
We're explicitly allowing for 'printf injection' here, so it's ok to
just disable the corresponding shellcheck check.
2018-10-04 22:23:38 +02:00
Jonas Weber
a6fdf4255a Fix SC2069 (wrong stdout/stderr redirect order)
In the original order, stderr was connected to the old stdout
(terminal). This was _probably_ not intended. The new order fixes this
by first connecting stdout to /dev/null and then attaching stderr to
that as well.
2018-10-04 22:04:24 +02:00
Jonas Weber
e2593c0dcb Fix SC2215 (missing brackets on if)
This might have never worked as intended, but how would you know?
2018-10-04 22:03:52 +02:00
Jonas Weber
fff656d1ac Unquote $recursive to support empty-case
This is safe to do, as the value of $recursive is not dependent on
user-supplied code.
2018-10-04 19:45:26 +02:00
Jonas Weber
53728a7ff0 Change backslash-dquote to single quote
Slightly breaking change, but improves security and readability.
2018-10-04 19:45:26 +02:00
Jonas Weber
ae7ccc5995 Fix SC2086 on all scripts
Relevant documentation: https://github.com/koalaman/shellcheck/wiki/SC2086

relates to: #540

This commit addresses 241 separate cases of missing quotes around
variables.
2018-10-04 19:45:22 +02:00
Jonas Weber
23debd5b6f Use cur_ip in jail for freebsd 2018-10-04 19:22:28 +02:00
Jonas Weber
352679386d Drop unused options parameter in __install_reboot 2018-10-04 19:22:28 +02:00
Jonas Weber
b3f4d3849a Fix __install_umount target parameter 2018-10-04 19:22:28 +02:00
Jonas Weber
6b0f8fba22 Remove unused variables (almost, found bugs?)
Solves SC2034

references #540.
2018-10-04 19:22:28 +02:00
085b2a2b10 remove set -e on explorers (they should be able to fail gracefully) 2018-10-04 17:38:39 +02:00
a46da35bbc fix SC2148 (missing shebang) and make executable 2018-10-04 17:38:38 +02:00
d950ddada3 fix SC2045 (use globs instead of ls) 2018-10-04 16:01:45 +02:00
134c84607f fix another SC2166 (test [ .. -a.. ] replaced by [ .. ] && ]) 2018-10-04 12:28:59 +02:00
Darko Poljak
e1b62ec560
Merge pull request #699 from darko-poljak/SC2039
Fix SC2039
2018-10-04 09:08:23 +02:00
Darko Poljak
8ef2773c0d Fix SC2039 2018-10-03 14:32:39 +02:00
Darko Poljak
44acfcdd12 Fix SC2002 2018-10-03 14:12:07 +02:00
Darko Poljak
e69be05f70
Merge pull request #694 from darko-poljak/SC2005
Fix SC2005
2018-10-02 21:49:45 +02:00
Darko Poljak
d29534861b
Merge pull request #695 from darko-poljak/SC2004
Fix SC2004
2018-10-02 21:49:01 +02:00
Darko Poljak
0928708d19 Fix SC2004 2018-10-02 20:34:54 +02:00
Darko Poljak
5ed95ce93b Fix SC2005 2018-10-02 20:22:44 +02:00
Jonas Weber
6326eae1bb Fix SC2166 on all manfest/gencode/explorers 2018-10-01 22:13:24 +02:00
Darko Poljak
82077aff25 Add timestamping log option to config file. 2018-09-27 18:55:33 +02:00
Darko Poljak
1e34fc20be
Merge pull request #691 from darko-poljak/log-timestamping
Add timestamp to log messages.
2018-09-26 20:35:14 +02:00
Darko Poljak
4b9994f134
Merge pull request #690 from myeisha/batch-scp
transfer all files of a directory at once
2018-09-23 22:22:57 +02:00
Darko Poljak
0c57b3083e Fix getting loggers. 2018-09-23 21:38:03 +02:00
Darko Poljak
6acf6f64dc Add timestamp to log messages. 2018-09-23 20:36:57 +02:00
dhivael
c021cd15cd transfer all files of a directory at once
instead of calling the copy command once per file in a directory (eg a
type explorer dir), call the copy command only once with all files of
the directory.

batch copy saves 20% of dry-run time on my test manifest in sequential
mode, and 15% in parallel mode.
2018-09-22 17:35:32 +02:00
dhivael
f918acd725 don't duplicate Remote::mkdir in explorer transfer
Remote::transfer contains a call to mkdir(destination) if the source is
a directory. since the destination must also be a directory we can omit
extra mkdir calls in Explorer.

this saves about 10% on my manifests in sequential mode, and about 6% in
parallel mode.
2018-09-22 13:16:22 +02:00
Jonas Weber
b3f3b907a4 Quote aptget command and params, simplify explorer 2018-09-12 11:36:11 +02:00
Jonas Weber
346f1f8af3 Send messages when installing packages via __package_apt 2018-09-12 11:36:06 +02:00
Adam Dej
2e653409c1 Update __docker type
- Update installation method, following official installation
instructions.
  - docker-engine was renamed to Docker CE around March 2017. Update
manpage to reflect that change.
  - Remove flag `--experimental` since it is no longer necessary to install a
different binary to get experimental features. Experimental features are
included in the stable binary and can be enabled by a flag or in a
config file.
2018-09-07 11:38:49 +02:00
Adam Dej
c2f8c7abb3 Add explorer for info in /etc/os-release 2018-09-07 11:38:49 +02:00
Darko Poljak
3782656569 Report encoding errors nicely. 2018-09-04 08:27:20 +02:00
Darko Poljak
a627247908 Check if certbot exists before using it. Fixes #685. 2018-09-01 23:27:58 +02:00
Stu Zhao
ad46c39c86
Merge branch 'master' into master 2018-08-30 15:56:19 -07:00
Darko Poljak
93d877f5bf Add nonparallel marker for __apt_source type. 2018-08-30 20:22:51 +02:00
Stu Zhao
f143a70463 Support pacman with --maxage parameter 2018-08-29 11:31:31 -07:00
Stu Zhao
b12c02138d Refactor __package_update_index explorers
* add an type explorer to unify detecting of package type.
* update currage use the type explorer, so if os and passed in type
does not match, it behaves correctly.
2018-08-29 00:22:28 -07:00
Stu Zhao
2f89d8a514 Fix __package_update_index processing error
exit 1 in explorer will abort cdist.
2018-08-29 00:22:28 -07:00
Dominique Roux
f04f76524c Bugfix:
- __grafana_dashboard had the wrong release name for devuan ascii
2018-07-22 18:35:30 +02:00
Adam Dej
43982f821f __systemd_unit: add support for masking units 2018-07-11 16:22:36 +02:00
Adam Dej
37b37f6e66 __systemd_unit: fix crash when transitioning to state=absent
This type tried to disable an unit after it has removed it, which
failed. Now the removal happens in gencode-remote, after the unit has
been stopped and disabled.
2018-07-11 16:22:36 +02:00
Adam Dej
8d84834db6 __systemd_unit: manpage clarifications
Clarify that this type only operates on units in /etc/systemd/system.
Also, when state=present, it is not always true that the type is
"installed, enabled and started"
2018-07-11 16:16:08 +02:00
Darko Poljak
6c8014b407 __letsencrypt_cert: add support for devuan ascii 2018-06-22 14:09:31 +02:00
Jonas Weber
4eaace7dd5 Handle missing file in __line explorer gracefully
closes #675
2018-06-20 11:14:25 +02:00
Darko Poljak
ec8f2f9488 Fix temp file location and removal 2018-06-20 08:29:41 +02:00
Darko Poljak
f75af95bda
Merge pull request #663 from asteven/type/__line
RFC: rewrite __line type for --before and --after support
2018-06-16 10:51:33 +02:00
Darko Poljak
9d4c0331a9 __sysctl: support sysctl.d 2018-06-16 07:42:43 +02:00
Darko Poljak
5aa8dac80a Disable config parser interpolation 2018-06-13 07:53:52 +02:00
d7a1645e4e __acl: fix os explorer 2018-06-11 11:21:07 +03:00
90adefe2e4 add __acl: Basic wrapper around setfacl 2018-06-08 15:06:35 +03:00
Steven Armstrong
4516ee0baa position can not be empty
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2018-06-01 15:27:40 +02:00
Darko Poljak
efebe15386 Fix __letsencrypt_cert type: use object id as domain if domain param is not specified 2018-05-30 19:38:56 +02:00
Darko Poljak
98ceebe386
Merge pull request #667 from aluuu/master
Fix __package_yum explorer
2018-05-28 08:05:59 +02:00
Nico Schottelius
709c216096 [__consul_agent] Add LSB header so that innserv doe not fail 2018-05-27 19:07:57 +02:00
Alexander Dinu
b3a4152e00 Fix __package_yum explorer
Why:

In case when name contains package name with exact version specified (e.g. rpm-build-4.11.3)
```
rpm -q --whatprovides "$pkg_name"
```

will tell you that no package could provide you with 'rpm-build-4.11.3',
because it's not virtual or file-provide, but exact package name.

This will lead to the installation of the package which was already installed.
It slows down manifest execution a lot.

My change will keep previous behaviour which relies on --whatprovides and
will fix wrong behaviour when argument is full package name with version.
2018-05-27 17:20:55 +02:00
e7e8f1428a Add new type __install_coreos 2018-05-21 11:10:54 +02:00
Steven Armstrong
fb26894cbd when searching treat line as string, and regex as regexp
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2018-05-18 16:57:34 +02:00
Steven Armstrong
a3968f8313 rewrite __line type for --before and --after support
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2018-05-18 01:25:35 +02:00
Darko Poljak
6946dc877a pep8 2018-05-17 13:33:58 +02:00
Darko Poljak
3cf417fa2b Fix NameError: name 'cdist_object' is not defined, #662 2018-05-15 12:12:01 +02:00
22d570ae60 Rewrite __letsencrypt_cert type
This commit adds the following features:

 * Ability to expand existing certificate
 * Ability to manage object state
 * Ability to obtain test certificate
 * Ability to promote test certificate to production
 * Ability to specify custom certificate name
 * Ability to specify multiple domains per certificate
 * Ability to use Certbot in standalone mode
 * Messaging

This commit also introduces the following behavioral changes:

 * Attempt to install Certbot only when it is not installed
   already
 * Installation of the cron job has to be enabled using
   `--automatic-renewal` parameter

**Note:** Object ID is now treated as certificate name and new
required parameter `--domain` was added.
2018-05-08 10:49:49 +02:00
Darko Poljak
543bc8fed9
Merge pull request #660 from devinsolutions/docker-secret
__docker_secret: Set executable flag on scripts
2018-05-04 17:08:10 +02:00
fdb5bbcf91 __docker_secret: Set executable flag on scripts 2018-05-04 16:47:09 +02:00
1efbd6a3a0 __docker_config: Fix config-data explorer
Before this fix, the explorer returned binary data when config did
not exist.

This commit also removes dependency on jq and sets executable flag
on the explorer file.
2018-05-04 16:42:47 +02:00
Darko Poljak
3ddd46e489
Merge pull request #658 from devinsolutions/docker-secret
Add new type __docker_secret
2018-05-02 08:36:17 +02:00
5a7d74b905 Add new type __docker_secret 2018-04-30 17:59:31 +02:00
4f61f6be9c Add new type __docker_config 2018-04-30 17:58:10 +02:00
aa20ed5ea1 __docker_stack: Use --with-registry-auth deploy option
Without this option, Swarm agents are unable to download images from
private registries.
2018-04-29 13:05:50 +02:00
Darko Poljak
09642142f4 Release 4.8.4 2018-04-20 14:31:10 +02:00
Darko Poljak
f09765a03a Improve error reporting. 2018-04-17 20:06:20 +02:00
Steven Armstrong
999f221c88 need a way to distinguish between install-config and normal config
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2018-04-05 10:32:33 +02:00
b695e82bec FreeBSD improvements (#651) 2018-03-26 08:53:31 +02:00
958222133b Fix spelling errors in manpages 2018-03-19 15:16:37 +01:00
Darko Poljak
ef13449687 Fix sphinx warnings. 2018-03-15 18:01:23 +01:00
Darko Poljak
d4a7b298a6 Return translator_class for older sphinx versions. 2018-03-15 13:49:22 +01:00
Darko Poljak
fa32bd865b
Merge pull request #650 from devinsolutions/type-docker-stack
Add new type __docker_stack
2018-03-13 18:50:14 +01:00
Darko Poljak
f095e40c22
Merge pull request #649 from devinsolutions/type-docker-swarm
Add new type __docker_swarm
2018-03-13 17:31:23 +01:00
7184228536 Add new type __docker_stack 2018-03-13 15:55:54 +01:00
8b86c6fc95 Add new type __docker_swarm 2018-03-13 15:54:47 +01:00
Darko Poljak
f881228878 Fix manpage generation. 2018-03-13 15:09:13 +01:00
Darko Poljak
1bb9da233e
Merge pull request #647 from ungleich/new-prometheus
New __prometheus_server, __prometheus_alertmanager, __grafana_dashboard
2018-03-11 21:11:54 +01:00
f03a0e586e __prometheus_{server,alertmanager}: restart when cli parameters change 2018-03-11 20:47:01 +01:00
f9443532a1 __key_value: --onchange parameter added (#648) 2018-03-11 18:01:38 +01:00
e63c3429da __prometheus_{server,alertmanager}: update man pages 2018-03-11 11:07:59 +01:00
787f5237e5 __prometheus_{server,alertmanager}: use os_version instead of lsb_release
works without the `lsb-release` package and actually seems to be more reliable, even though it is inconsistent between debian and devuan
2018-03-11 10:55:24 +01:00
7ae24cf677 __grafana_dashboard: cleanup 2018-03-11 10:52:25 +01:00
34aefbc0f6 __prometheus_{server,alertmanager}: new man pages 2018-03-11 01:35:16 +01:00
ee6d63325d new __prometheus_alertmanager; fixes to __prometheus_server 2018-03-11 01:28:26 +01:00
8a488591bb __prometheus_server: switch to packages; assume prometheus 2.x 2018-03-11 00:47:33 +01:00
Darko Poljak
fe870ba8ba Loglevel arguments not parsed but accessed #646 2018-03-10 11:12:31 +01:00
Darko Poljak
b0c5bc793d Fix "label empty or too long" error #645 2018-03-09 09:58:49 +01:00
Nico Schottelius
54ca7b40c7 Update consul agent init script so that it works again on Devuan
Error before:

---- BEGIN code-remote:stderr ----
insserv: warning: script 'consul' missing LSB tags and overrides
insserv: There is a loop between service monit and consul if stopped
insserv:  loop involving service consul at depth 2
insserv:  loop involving service monit at depth 1
insserv: Stopping consul depends on monit and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
2018-03-06 22:33:10 +01:00
Nico Schottelius
bfe8b8fa57 Support stretch + ascii in __grafana_dashboard 2018-03-06 20:52:55 +01:00
Darko Poljak
bc94c01c49 Amend __file man. 2018-03-06 07:39:50 +01:00
Darko Poljak
05084c6fc6 pep8 2018-03-06 07:35:27 +01:00
a9a359d542 Add pre-exists state to __file (#641)
This allows checking whether a file exists, but erroring out instead of
creating the file if it does not (or is not a regular file).
2018-03-06 07:33:22 +01:00
b8ed816af4 Add __apt_default_release type (#643) 2018-03-05 12:40:11 +01:00
Darko Poljak
378c7f6a89 Support in-distribution config file 2018-03-01 20:12:21 +01:00
Darko Poljak
2dfbd89c5e Fix determining save_output_streams value through configuration 2018-03-01 20:00:54 +01:00
Darko Poljak
23292e5cad Fix determining beta value through configuration 2018-03-01 19:33:22 +01:00
Darko Poljak
8eb0697b42
Merge pull request #640 from darko-poljak/bugfix/error_info_lost_with_jobs_#632
[BETA] bug: error info lost with parallel (option -j) #632
2018-02-28 23:40:26 +01:00
Darko Poljak
7ccc959ebd Bugfix: --beta on the commandline does not seem to work #635
Fix argparse parsers.
2018-02-28 23:29:45 +01:00
Darko Poljak
3fb7e33305 Bugfix: non-existent manifest not handled gracefully #639 2018-02-28 23:26:04 +01:00
Darko Poljak
2b5f1a0148 Fix a case when HOME is set but empty 2018-02-27 23:07:52 +01:00
Darko Poljak
cf36aece7d [BETA] bug: error info lost with parallel (option -j) #632 2018-02-25 23:48:53 +01:00
Darko Poljak
b870b6e43a bugfix: __consul fails if consul is already running #633 2018-02-25 09:51:51 +01:00
Darko Poljak
ef7304499a
Merge pull request #629 from tom-ee/feature/improve__package_dpkg
add `--state`-parameter and messaging to __package_dpkg
2018-02-21 21:19:07 +01:00
a5dc6214e1 dpkg {-r|-P} needs the package-, not the filename 2018-02-21 15:01:08 +01:00
3208ab614e review notes (duplicate boolean section, comma separate "see also" items) 2018-02-21 11:16:23 +01:00
Darko Poljak
526e1c9a6d
Merge pull request #628 from tom-ee/bugfix/messaging__package_update_index
fix messaging for __package_update_index
2018-02-21 10:03:58 +01:00
Darko Poljak
1f93e7291e Fix consul message and document messaging. 2018-02-21 10:00:25 +01:00
a545b10538 add --state-parameter and messaging to __package_dpkg
- `--state` allows to remove a deb-package, if `--purge-if-absent` is
  specified the package is purged instead of "only" removed
- messaging was added
- man-page updated accordingly
2018-02-20 16:46:26 +01:00
94c9d11cb8 fix messaging for __package_update_index
The message was printed unconditionally, even if no `apt-get update` had
been running.
2018-02-20 10:20:54 +01:00
Darko Poljak
c0dc26a577 Fix consul message. 2018-02-15 22:03:28 +01:00
Darko Poljak
48a0fb5bd0 Add message when adding consule directly on target. 2018-02-15 21:34:54 +01:00
Darko Poljak
4d39b6af51 Add -4 and -6 params to force IPv4, IPv6 addresses respectively. 2018-02-15 20:33:36 +01:00
Darko Poljak
9a832d88b5
Add option for directly downloading on target host. 2018-02-15 15:45:31 +01:00
Darko Poljak
0074bb0564 Fix minor docs formatting. 2018-02-14 20:07:44 +01:00
Darko Poljak
eb94d7a8bb
Remove update index type dep, call update index after adding new source. (#623) 2018-02-12 12:13:38 +01:00
Darko Poljak
a993e0f5a9
Support disabling saving output streams 2018-02-07 18:12:15 +01:00
Darko Poljak
47399bfa9f Add --renew-hook param to letsencrypt_cert type. 2018-02-05 13:57:53 +01:00
Darko Poljak
fe7da4d8b3 Update man page. 2018-01-31 20:21:48 +01:00
Darko Poljak
d6ff077156 __package_apt ignores --version parameter #615 2018-01-31 20:18:11 +01:00
Darko Poljak
87558adbda
Merge pull request #620 from thriqon/130-issue-stdin
Allow reading contents of __motd and __issue from stdin
2018-01-31 20:12:10 +01:00
Darko Poljak
4d4d76bb38
Merge pull request #617 from tom-ee/maxage-for__package_update_index
Maxage for  package update index
2018-01-31 13:57:09 +01:00
Jonas Weber
bfde7a6cfa Allow __motd to read from stdin 2018-01-31 12:53:50 +00:00
Jonas Weber
2069650e74 Allow filling __issue from stdin
closes #130
2018-01-31 12:53:50 +00:00
fa91dbfcdb (re-) copyright msg 2018-01-31 11:10:20 +01:00
6a6fdac25d add error-message if OS is unsuppored; fix indentation 2018-01-31 10:37:30 +01:00
cb21b3679a add missing legal boilerplate to explorer 2018-01-31 09:22:19 +01:00
2dc5550fa4 __package_update_index: update man-page w/ --magage and MESSAGING 2018-01-30 16:05:30 +01:00
Thomas Eckert
27d38a28ab __package_update_index: optional --maxage <seconds>-parameter for apt
`--maxage 3600` ensures that `apt-get --quiet update` is only done if
the previous run was at least 1 hour ago.

This also adds messaging
2018-01-30 13:48:25 +01:00
Jonas Weber
3545d0157f Provide --purge-if-absent to __package_apt
Configuration files are not purged under Debian when the package
is deinstalled. If this parameter is given, they are deleted upon
package deinstallation.
2018-01-30 12:04:19 +01:00
Jonas Weber
dd188ca588 Handle stdin to __systemd_unit correctly
When directly piping in the source of a systemd unit file, cdist
errored out. This is due to not propagating the stdin file to the
underlying __config_file type (which already contains code for this
case, but this has to be duplicated in __systemd_unit).

The following example thus works:

    __systemd_unit test.service --source - <<EOF
    [Service]
    ExecStart=/bin/sleep 3600
    EOF
2018-01-21 09:12:45 +00:00
Darko Poljak
9703e0f08e Save output streams.
Implementation is 99% based on Steven's initial implementation.
2018-01-09 09:31:40 +01:00
00f524773e
__daemontools fixes
make __daemontools more robust and clean up the --install-init-script confusion
2018-01-05 22:04:13 +01:00
Michal Hanula
c895be381f When installing packages on freebsd, redirect stdout and stderr to /dev/null instead of closing them.
Some pre/post-install scripts rely on them being open.

(It would be bette to leave them open and show the output, but I didn't
want to change the behaviour)
2018-01-02 18:11:37 +01:00
a657af64a1 __letsencrypt_cert: add nonparallel and make admin-email required (#609) 2017-12-29 17:10:16 +01:00
uqam-fob
fc8dded8e9 __line: Support regex beginning with an hyphen (fixes #607) (#608)
If `regex` begins with an hyphen, `grep` treats it as an option
and treats `file` as the regular expression. This leads to `grep`
trying to read from the standard input and making it wait infinitely.

This patch adds the missing argument breaker `--` and allows
`regex` to begin with an hyphen (provided it is called correctly).
2017-12-29 17:09:06 +01:00
3397bcbf9b __systemd_unit improvements (#606)
* __systemd_unit: Move systemctl detection to manifest

* __systemd_unit: Restart the unit if inactive

Until now, the --restart parameter caused the unit to be restarted
only when the unit file has changed. This commit modifies --restart
behavior so that the unit is also restarted when the unit is inactive.

* __systemd_unit: Do not create unit file when source is empty
2017-12-29 17:06:48 +01:00
457233f968 __sysctl: Add support for CoreOS (#605) 2017-12-12 08:50:48 +01:00
Steven Armstrong
71b858e467 use parameter defaults for chroot; re-export cdist log level to nested cdist run
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2017-12-12 00:15:54 +01:00
Darko Poljak
eb8922ebcd Remove redundant log.error line. 2017-11-20 08:02:25 +01:00
be7a99210b add --minute to __cron (#603)
We don't want this to run _every_ minute (default for `--minute` is `*`).
2017-11-19 13:31:44 +01:00
uqam-fob
3b6a471119 explorer/memory: Support OpenBSD (#602)
Adds support to detect the amount of memory available on OpenBSD
systems.
2017-11-15 07:31:17 +01:00
Darko Poljak
0bf6af6d22
Skip empty parameter. Fixes #599. (#600) 2017-11-15 07:30:35 +01:00
aec63d42f1 __config_file: Fix onchange command not being executed (#596)
When a config file state changes from present to absent, onchange
command was not being run.

Fixes #595.
2017-11-10 12:22:38 +01:00
Darko Poljak
4f5dddd9d6
Fix for __line containing single quotes: #154. (#594) 2017-11-09 08:20:33 +01:00
_moep_
4cdc4ea42c update type for Debian Stretch (#593) 2017-11-07 13:26:44 +01:00
b18327c520 Add __systemd_unit type (#589) 2017-11-07 13:25:37 +01:00
Darko Poljak
a8c41bfe44 Change warning message for invalid type. 2017-11-02 19:56:27 +01:00
Darko Poljak
782e662a13 Remove invalid type link from runtime conf dir at proper time. 2017-11-02 17:54:14 +01:00
Darko Poljak
c14f3b68f4 Warn about invalid type and continue instead of error. 2017-11-02 17:44:47 +01:00
Darko Poljak
e6c5563a16 NoSuchTypeError -> InvalidTypeError 2017-11-02 13:57:36 +01:00
4799e43516 new type: __letsencrypt_cert (#591) 2017-11-01 08:56:12 +01:00
5eb478da95 Add messaging to __ssh_authorized_key. (#590) 2017-10-31 07:56:25 +01:00
Dominique Roux
2cd006de79 F/ccollect create destination (#548) 2017-10-29 17:23:35 +01:00
da8f6efafc fix explorer/os for devuan ascii (#588) 2017-10-20 18:16:06 +02:00
36302f7541 Add support for CoreOS to __timezone type (#587) 2017-10-19 19:58:34 +02:00
5c4cda589c Add support for CoreOS to __hostname type (#586) 2017-10-19 19:58:25 +02:00
d1c3e2420f Add messaging to __process 2017-09-29 14:48:51 +02:00
Ander Punnar
8b78001c9e fix running scripts with execute bit (#583) 2017-09-29 14:44:44 +02:00
7ee56d099f resolved #444 add messaging to __line-type (#580)
#444 Add messaging to __line-type
2017-09-27 12:19:07 +02:00
Darko Poljak
966bf30bee Fix \n thing. 2017-09-20 21:53:05 +02:00
Darko Poljak
ea58cbd171 Better format command error output. 2017-09-20 21:19:19 +02:00
Darko Poljak
764ea49904 Log more data. 2017-09-17 20:30:07 +02:00
Darko Poljak
8883196efb Bugfix for: __ssh_authorized_keys overwrites existing keys #577 (#579)
* Fix a bug where invalid key removes all file entries.

* __ssh_authorized_key: add key validation.
2017-09-17 08:13:05 +02:00
Darko Poljak
ac04edc233 Change path removal suitable for integration and normal run. 2017-09-14 09:53:16 +02:00
Darko Poljak
47d72fb83a Create control path only if needed. 2017-09-14 09:27:27 +02:00
Darko Poljak
08bc38dd0f Log ERROR to stderr and rest to stdout. (#576) 2017-09-13 13:06:06 +02:00
Darko Poljak
f2614469c5 configuration: converter() -> get_converter() 2017-09-11 22:36:45 +02:00
Darko Poljak
f0dc21ec0c __cdist_log_level=<log level int value>; __cdist_log_level_name=<log level name> (#574) 2017-09-11 09:06:47 +02:00
Darko Poljak
1ae5b1732e Fix missing dirs cleanup. 2017-09-10 23:08:21 +02:00
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
Darko Poljak
00a7f4af93 Separate functions for target host name and fqdn. 2017-06-23 20:03:28 +02:00
Darko Poljak
ad51d4e0f6 Merge pull request #532 from ungleich/prometheus-fixes
fix missing dependencies in __prometheus_*, __go_get
2017-06-16 10:04:58 +02:00
Nico Schottelius
e7fa238b2a Fix mkfs.vfat support (no -q) 2017-06-16 05:30:40 +02:00
5d148a58d2 fix missing dependencies in __prometheus_*, __go_get 2017-06-15 11:13:39 +02:00
Darko Poljak
e32f2110ab Document object prepare and object run parallelization. 2017-06-13 22:54:40 +02:00
Darko Poljak
e774fc2b2a Merge pull request #507 from darko-poljak/the-good-the-bad-and-the-ugly
The good the bad and the ugly - object prepare/run parallelization
2017-06-13 22:45:09 +02:00