This release includes a huge number of improvements, major highlights:
Automatic sudo password prompting - at last! pyinfra can now detect when a sudo password is required and will prompt the user.
Global config object - there is now a pyinfra.config
object that should be used to set config variables:
from pyinfra import config
config.SUDO = True
This replaces the old style of setting SUDO = True
at the top of files which was extracted via the AST. This new object means config variables can be set to anything (including the results of functions) and work across multiple deploy files.
Operation & fact updates:
- Add
pkgin.packages
&pkgin.upgrade
operations (@lun-4) - Add
pkgin.PkginPackages
fact (@lun-4) - Add
selinux.FileContext
&selinux.SEBoolean
facts (@benridley) - Add
openrc.service
operation - Add
openrc.OpenrcStatus
&openrc.OpenrcEnabled
facts - Add last login time to
server.Users
fact (@sysadmin75) - Fetch held deb package versions in
deb.DebPackages
fact (@GerardoGR) - Add
force
,force_backup
andforce_backup_dir
arguments tofiles.files
,files.directory
&files.link
operations - Add resource and SSL arguments to
mysql.user
operation - Add
with_grant_option
argument tomysql.privileges
operation - Add
available
argument toapk.packages
operation (@lun-4)
Connector updates:
- Transfer ownership of files uploaded with su/sudo (@benridley)
- Add
ssh_forward_agent
group data variable overriding SSH config
Other bits:
- Add
doas
&doas_user
global arugments - Use host data for global arguments (
host.data.sudo
, etc) - Add
--data key=value
CLI flag - Propagate return value from
@deploy
decorator (@karlicoss) - Large expansion of tested idempotent operations
- Loosen distro requirement