Have a burning desire to run sshd
or another service on your VR headset?
Cody, Craig and Nick do time-boxed live hackathon working on developing CFEngine services promise type support for Termux. Watch Nick and Craig race to implement basic services support before the timer buzzes.
Video
The video recording is available on YouTube:
At the end of every webinar, we stop the recording for a nice and relaxed, off-the-record chat with attendees. Join the next webinar to not miss this discussion.
Termux services policy
Here is the snippet of policy developed during the episode.
bundle agent __main__
{
services:
"sshd"
service_policy => "stopped",
service_method => termux_services;
}
bundle agent termux_services(service, policy)
# @brief Manage service state in Termux
# @param service The name of the service to manage, e.g. `sshd`
# @param policy The desired state of the service (`running`|`stopped`)
{
classes:
"service_running"
expression => regcmp(
"^run:.*",
execresult("sv status ${service}", "useshell")
);
"service_stopped"
expression => regcmp(
"^down:.*",
execresult("sv status ${service}", "useshell")
);
"policy_running"
expression => strcmp("${policy}", "running");
"policy_stopped"
expression => strcmp("${policy}", "stopped");
commands:
service_stopped.policy_running::
"sv up ${service}"
contain => useshell;
service_running.policy_stopped::
"sv down ${service}"
contain => useshell;
}
body service_method termux_services
{
service_bundle => default:termux_services(
${this.promiser}, ${this.service_policy});
}
body contain useshell
{
useshell => "useshell";
}
Note: Further work remains, notably “enabling” the service if it’s not yet been enabled and integrating it into the Masterfiles Policy Framework and the standard_services
bundle.
Links
- Connect on LinkedIn w/ Cody, Craig, Herman, or Nick
- All Episodes
- Termux
- Termux Services
- CFEngine services promise type
- Masterfiles Policy Framework
- standard_services bundle
- From the post show chit-chat
- RSS Feed for the cfengine.com/blog? We have one, find the rss feed here!
- Struggling with package management, unauthorized software installed in your infrastructure? Check out the packages-allowlist and conditional-installer modules developed during hack day at CfgMgmtCamp 2023