Current version: 0.9.0 (12 October 2024) [src]
act
, the Administrative Compatibility
Tool, provides a consistent interface for system administration activities
across multiple types of Unix-like operating system, with minimal overhead.
There are no complex dependencies or specific Python versions required. All you need to run act is a shell and the basic operating system utilities.
The tool simplifies basic package and service management across a heterogeneous estate. It can be used in scripted bulk queries or updates over SSH, interactively via a terminal multiplexer such as tmux(1), or it can be used as an OS-independent layer for a command and control system. More advanced activities are left to the native administrative commands.
Supported operating systems:
- Debian GNU/Linux 7 - 12 and derivatives
- AlmaLinux 8 - 9
- Arch Linux
- Alpine Linux
- FreeBSD 13.3-RELEASE
- OpenBSD 7.5
- OpenSUSE Leap 15.4
- Rocky Linux 8 - 9
- CentOS 5 - 7
- RHEL 5 - 9
Supported tasks include package installation, updating, reinstallation, and removal; and service listing, stopping, starting, restarting, and masking.
An extension mechanism allows new actions to be added where needed. User-defined hooks can also run before and after each action.
This software is distributed under the terms of the GNU General Public License version 3 or later.
- Source code: act-0.9.0.tar.gz [signature]
- Manual for act
- Git repository (at Codeberg)
- Issue tracker (at Codeberg)
To install act
, follow these steps:
wget https://www.ivarch.com/programs/sources/ act-0.9.0.tar.gz tar xzf act-0.9.0.tar.gz cd act-0.9.0 sh ./configure make sudo make install
Comments, bug reports, and patches can be sent using the Issue tracker, or through the Contact Form.
Example
This example shows the use of “act package-upgrade-list
”
to find out which of the test systems listed in the LAB-VMS
file have updates waiting to be applied.
# for remoteHost in $(cat LAB-VMS); do \ ssh "${remoteHost}" "act -q package-upgrade-list" \ > "upgrades-${remoteHost%.*}"; \ done # wc -l $(find . -maxdepth 1 -type f -name "upgrades-*" -size +0 | sort) 2 ./upgrades-alma9 3 ./upgrades-archlinux 2 ./upgrades-centos7 2 ./upgrades-debian11 2 ./upgrades-debian12 13 ./upgrades-freebsd 152 ./upgrades-opensuseleap 237 ./upgrades-rocky8 4 ./upgrades-ubuntu24 417 total
Here we see that, for example, the alma9 system has 1 upgrade waiting (the 2 lines of output include one header line); and the rocky8 system has a lot of upgrades waiting.
News
0.9.0 - 12 October 2024
- feature: new “system-info” action
- feature: new “listening-ports” action
0.8.1 - 26 September 2024
- feature: JSON output with the new “–json” option
- feature: output redirection with new “–output”, “–tee”, and “–error” options
- feature: support for Arch Linux packages
- feature: support for Alpine Linux packages
- feature: support for OpenRC services
- feature: actions which output structured records will now include a header line
- fix: corrected errors in Debian package-owning-file when diversions are active
0.2.0 - 22 September 2024
- feature: extension mechanism to allow custom actions to be dropped in
- fix: corrected errors in OpenBSD package-upgrade-list
0.1.0 - 4 May 2024
- feature: FreeBSD support
- feature: OpenBSD support
- fix: corrected errors in Debian package-upgrade-list
- fix: corrected documentation of package-upgrade-list output format
0.0.1 - 28 April 2024
- support for Debian, AlmaLinux, Rocky, CentOS, SUSE, and Redhat packages
- support for systemd and System V init services
- pre and post action hooks system, with recursion prevention