skills

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2026 License: AGPL-3.0 Imports: 0 Imported by: 0

Documentation

Overview

Package skills provides built-in reusable skill implementations for common server automation tasks.

Each subpackage contains skills for a specific domain:

  • apt: Package management (update, upgrade, status)
  • fail2ban: Fail2ban service management (status, start, stop)
  • mariadb: MariaDB database management (status, start, stop)
  • ping: SSH connectivity checks
  • reboot: Server reboot with optional reconnection wait
  • swap: Swap file management (create, delete, status)
  • ufw: Uncomplicated Firewall management (status, enable, disable)
  • user: User management (create, delete, status)

All skills implement the types.RunnableInterface and can be used with the ork.Node.Skill() method or registered with a types.Registry.

Example usage:

node := ork.NewNodeForHost("server.example.com")
result := node.Skill(skills.IDAptUpdate)

Or with explicit skill creation:

skill := apt.NewAptUpdate()
skill.SetNodeConfig(node.GetNodeConfig())
result := skill.Run()

Skills follow the idempotency principle: Check() determines if changes are needed, Run() executes the operation. The Result.Changed field indicates whether any modifications were made.

Index

Constants

View Source
const (
	// IDPing checks SSH connectivity
	IDPing = "ping"

	// IDAptUpdate refreshes the package database
	IDAptUpdate = "apt-update"

	// IDAptUpgrade installs available updates
	IDAptUpgrade = "apt-upgrade"

	// IDAptStatus shows available updates
	IDAptStatus = "apt-status"

	// IDReboot reboots the server
	IDReboot = "reboot"

	// IDSwapCreate creates a swap file (requires "size" arg in GB)
	IDSwapCreate = "swap-create"

	// IDSwapDelete removes the swap file
	IDSwapDelete = "swap-delete"

	// IDSwapStatus shows swap status
	IDSwapStatus = "swap-status"

	// IDUserCreate creates a user with sudo (requires "username" arg)
	IDUserCreate = "user-create"

	// IDUserDelete deletes a user (requires "username" arg)
	IDUserDelete = "user-delete"

	// IDUserList lists all non-system users
	IDUserList = "user-list"

	// IDUserStatus shows user info (requires "username" arg)
	IDUserStatus = "user-status"

	// IDFail2banInstall installs fail2ban intrusion prevention
	IDFail2banInstall = "fail2ban-install"

	// IDFail2banStatus shows fail2ban service and jail status
	IDFail2banStatus = "fail2ban-status"

	// IDUfwInstall installs and configures UFW firewall
	IDUfwInstall = "ufw-install"

	// IDUfwStatus checks UFW firewall status
	IDUfwStatus = "ufw-status"

	// IDUfwAllowMariaDB configures UFW for MariaDB access
	IDUfwAllowMariaDB = "ufw-allow-mariadb"

	// IDSshHarden applies security hardening to SSH server configuration
	IDSshHarden = "ssh-harden"

	// IDKernelHarden applies security-focused kernel parameters
	IDKernelHarden = "kernel-harden"

	// IDAideInstall installs and configures AIDE file integrity monitoring
	IDAideInstall = "aide-install"

	// IDAuditdInstall installs and configures the Linux Audit Framework
	IDAuditdInstall = "auditd-install"

	// IDSshChangePort changes the SSH port to reduce automated scanning
	IDSshChangePort = "ssh-change-port"

	// MariaDB skills
	// IDMariadbInstall installs and configures MariaDB database server
	IDMariadbInstall = "mariadb-install"

	// IDMariadbSecure performs security hardening on MariaDB
	IDMariadbSecure = "mariadb-secure"

	// IDMariadbCreateDB creates a new MariaDB database
	IDMariadbCreateDB = "mariadb-create-db"

	// IDMariadbCreateUser creates a new MariaDB user
	IDMariadbCreateUser = "mariadb-create-user"

	// IDMariadbStatus displays MariaDB server status
	IDMariadbStatus = "mariadb-status"

	// IDMariadbListDBs displays all databases
	IDMariadbListDBs = "mariadb-list-dbs"

	// IDMariadbListUsers displays all users
	IDMariadbListUsers = "mariadb-list-users"

	// IDMariadbBackup creates a compressed SQL dump
	IDMariadbBackup = "mariadb-backup"

	// IDMariadbSecurityAudit performs security audit
	IDMariadbSecurityAudit = "mariadb-security-audit"

	// IDMariadbChangePort changes MariaDB port
	IDMariadbChangePort = "mariadb-change-port"

	// IDMariadbEnableSSL enables SSL/TLS encryption
	IDMariadbEnableSSL = "mariadb-enable-ssl"

	// IDMariadbEnableEncryption enables data-at-rest encryption
	IDMariadbEnableEncryption = "mariadb-enable-encryption"

	// IDMariadbBackupEncrypt creates an encrypted backup
	IDMariadbBackupEncrypt = "mariadb-backup-encrypt"
)

Skill ID constants for use with RunSkill. These constants provide compile-time safety and IDE autocomplete for skill IDs.

Example:

node := ork.NewNodeForHost("server.example.com")
err := node.Run(skills.IDPing)

Variables

This section is empty.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
Package apt provides playbooks for managing Debian/Ubuntu packages via apt.
Package apt provides playbooks for managing Debian/Ubuntu packages via apt.
Package fail2ban provides playbooks for managing the fail2ban intrusion prevention system.
Package fail2ban provides playbooks for managing the fail2ban intrusion prevention system.
Package mariadb provides playbooks for managing MariaDB database servers.
Package mariadb provides playbooks for managing MariaDB database servers.
Package ping provides a skill for testing SSH connectivity to remote servers.
Package ping provides a skill for testing SSH connectivity to remote servers.
Package reboot provides a skill for rebooting remote servers.
Package reboot provides a skill for rebooting remote servers.
Package security provides playbooks for system security hardening and configuration.
Package security provides playbooks for system security hardening and configuration.
Package swap provides playbooks for managing swap files on Linux systems.
Package swap provides playbooks for managing swap files on Linux systems.
Package ufw provides playbooks for managing the Uncomplicated Firewall (UFW).
Package ufw provides playbooks for managing the Uncomplicated Firewall (UFW).
Package user provides playbooks for managing Linux user accounts.
Package user provides playbooks for managing Linux user accounts.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL