Package: directord
DirectordDirectord is a powerful automation platform and protocol built to drive
infrastructure and applications across the physical, edge, IoT, and cloud
boundaries;efficient, pseudo-real-time, at scale,
made simple.Design PrinciplesThe Directord design principles can befound here.DocumentationAdditional documentation covering everything from application design, wire
diagrams, installation, usage, and more can all befound here.Welcome ContributorsRead documentation on how best to deploy and leverage directord.When ready, if you'd like to contribute to Directord pull-requests are very
welcomed. Directord is an open platform built for operators. If you see
something broken, please feel free to raise a but and/or fix it.Information on running tests can befound here.Have Questions?Join us onlibera.chatat#directord. The community is just getting started: folks are here to help,
answer questions, and support one another.Quick IntroductionThis quick cast shows how easy it is to install, bootstrap, and deploy a scale test environment.Hello WorldLet's create a virtual env on your local machine to bootstrap the installation,
once installed you can move to the server node and call all your tasks from there$python3-mvenv--system-site-packages~/directord
$~/directord/bin/pipinstall--upgradepipsetuptoolswheel
$~/directord/bin/pipinstalldirectordWe need to create a catalog for bootstrapping. Let's assume we are installing directord in two machines:directord-1 192.168.1.100 : directord server, a clientdirectord-2 192.168.1.101 : Only a clientFor that we create a file$vi~/directord-catalog.yamlwith the contentsdirectord_server:targets:-host:192.168.1.100port:22username:fedoradirectord_clients:args:port:22username:fedoratargets:-host:192.168.1.100-host:192.168.1.101We can now call directord to bootstrap the installation. Bootstrapping uses ssh to connect to the machines but after that ssh is no longer used.
and you only need the ssh keys to connect your local machine to the machines you are installing into the server and client do not need shared keys between themselves.To kickstart the bootstrapping you call  directord with the catalog file you created and a catalog with the jobs required to bootstrap them.$~/directord/bin/directordbootstrap\--catalog~/directord-catalog.yaml\--catalog~/directord/share/directord/tools/directord-dev-bootstrap-zmq.yamlOnce that is ran you can now ssh to the server and issue all the commands from there$sshfedora@192.168.1.100First to make sure all the nodes are connected$sudo/opt/directord/bin/directordmanage--list-nodesShould show youIDEXPIRYVERSIONHOST_UPTIMEAGENT_UPTIME
--------------------------------------------------------
directord-1132.20.9.01:38:53.2400000:00:00.051849
directord-2131.690.9.01:39:25.7800000:00:00.099533Then we create our first orchestration job lets add a file called$vihelloworld.yamlWith the contents-jobs:-ECHO:hello worldThen we call the orchestration to use it$sudo/opt/directord/bin/directordorchestratehelloworld.yamlShould return something like:Jobreceived.TaskID:9bcf31cb-7faf-4367-bf37-57c11b3f81dcWe use that task ID to probe how the job went or we can list all the jobs with"$sudo/opt/directord/bin/directordmanage--list-jobsThat returns something like:IDPARENT_JOB_IDEXECUTION_TIMESUCCESSFAILED
---------------------------------------------------------------------------------------------------------
9bcf31cb-7faf-4367-bf37-57c11b3f81dc9bcf31cb-7faf-4367-bf37-57c11b3f81dc0.0220With the task id we can see how the job went:$sudo/opt/directord/bin/directordmanage--job-info9bcf31cb-7faf-4367-bf37-57c11b3f81dcAnd voila here is our first orchestrated hello world:KEYVALUE
---------------------------------------------------------------------------
ID9bcf31cb-7faf-4367-bf37-57c11b3f81dc
INFOtest1=helloworldtest2=helloworld
STDOUTtest1=helloworldtest2=helloworld
...LicenseApache License Version 2.0COPY