- *configuration management*: sync files, packages, services and run commands
on remote hosts
-The goal is that even unexperienced users (with safcm or configuration
+The goal is that even inexperienced users (with safcm or configuration
management in general) should be able to apply configuration with safcm
quickly. This means all key concepts of safcm must be easy to grasp and for
each task there should be one obvious way.
to apply the same configuration to multiple hosts. The host itself is also
considered a group for host-specific configuration. In addition to manual
group assignment _detected groups_ assign hosts to groups depending on the
-output of custom commands on the remote host. The configuration for a group
+output of custom commands on the remote host. The _configuration_ for a group
contains the files, packages, services and commands which should be applied to
all hosts which are members of this group.
file and execute or source it as a workaround.
- Permissions of existing files and directories will be overwritten with the
- default (root/root, 0644 for files, 0755 for directories) unless manually
- configured via `permissions.yaml`. This includes important paths like
- `/root` which often have strict permissions by default, so carefully check
- the output for unwanted changes.
+ default (root/root or root/wheel, 0644 for files, 0755 for directories)
+ unless manually configured via `permissions.yaml`. This includes important
+ paths like `/root` which often have strict permissions by default, so
+ carefully check the output for unwanted changes.
- The full file content of all files is sent to the remote during
synchronization. This makes it impractical to synchronize large files with
This program is licensed under GPL version 3 or later.
-Copyright (C) 2021 Simon Ruderich
+Copyright (C) 2021-2024 Simon Ruderich
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by