### Enable and Start grlx-sprout Systemd Service Source: https://github.com/gogrlx/grlx/blob/master/docs/INSTALL.md Commands to reload the systemd daemon, enable the grlx-sprout service to start on boot, and immediately start the service. This ensures the sprout is active and ready to connect to the farmer. ```bash systemctl daemon-reload && systemctl enable --now grlx-sprout ``` -------------------------------- ### Configure grlx-farmer User and Systemd Service Source: https://github.com/gogrlx/grlx/blob/master/docs/INSTALL.md Commands to set up an unprivileged 'farmer' user, create the necessary configuration directory, assign correct permissions, and enable/start the grlx-farmer systemd service. This ensures the farmer runs with appropriate privileges and starts automatically. ```bash useradd farmer mkdir -p /etc/grlx chown farmer:farmer /etc/grlx systemctl daemon-reload systemctl enable --now grlx-farmer ``` -------------------------------- ### Build grlx Binaries from Source Source: https://github.com/gogrlx/grlx/blob/master/docs/INSTALL.md Instructions for building grlx binaries from source using a Makefile. This process requires a working Go toolchain. Specific commands are provided for Linux and other operating systems. ```bash make ``` ```bash GOOS=linux make ``` -------------------------------- ### Install grlx Farmer on Control Server Source: https://github.com/gogrlx/grlx/blob/master/README.md This command installs the grlx 'farmer' component on your control server. It prompts for interface, ports, an admin public key (obtained from CLI initialization), and certificate hostnames for TLS validation. Default ports are recommended for a quick start, ensuring no firewall interference. ```bash # or, just run as root instead of sudo curl -L https://bootstrap.grlx.dev/latest/farmer | sudo bash ``` -------------------------------- ### Verify grlx Installation and Run Basic Commands Source: https://github.com/gogrlx/grlx/blob/master/README.md After installing the farmer and sprouts, these commands verify the setup and demonstrate basic functionality. It checks the grlx version, accepts TLS and sprout keys, waits briefly, then pings all sprouts, runs 'whoami', and finally 'uname -a' with JSON output. This confirms basic communication and command execution across the fleet. ```bash grlx version grlx keys accept -A sleep 15; grlx -T \* test ping grlx -T \* cmd run whoami grlx -T \* cmd run --out json -- uname -a ``` -------------------------------- ### Configure grlx-sprout Service Source: https://github.com/gogrlx/grlx/blob/master/docs/INSTALL.md YAML configuration for the grlx-sprout service, specifying the domain or IP address of the grlx-farmer. This configuration is crucial for the sprout to locate and communicate with its control server. ```yaml farmerinterface: farmerurl: https://:5405 ``` -------------------------------- ### Add CLI Public Key to Farmer Configuration Source: https://github.com/gogrlx/grlx/blob/master/docs/INSTALL.md YAML configuration snippet to be added to the grlx-farmer's configuration file. This entry registers a public key from a grlx CLI client, allowing it to authenticate with the farmer. Replace '' with the actual public key. ```yaml pubkeys: admin: - ``` -------------------------------- ### Install grlx Sprout on Fleet Nodes Source: https://github.com/gogrlx/grlx/blob/master/README.md This snippet installs the grlx 'sprout' component as a daemon on your fleet nodes. It can be run as root or with sudo. Optional environment variables like FARMER_BUS_PORT, FARMER_API_PORT, and FARMERINTERFACE can be set if non-default ports or interfaces are used for the farmer. ```bash # or, just run as root instead of sudo # FARMER_BUS_PORT and FARMER_API_PORT variables are available in case you chose # to use different ports. curl -L https://bootstrap.grlx.dev/latest/sprout | FARMERINTERFACE=localhost sudo -E bash ``` -------------------------------- ### Initialize grlx CLI on Development Machine Source: https://github.com/gogrlx/grlx/blob/master/README.md This snippet downloads the grlx command-line utility for Linux (or macOS) and initializes it. It sets up the CLI, prompts for farmer interface and communication ports, and outputs the administrator public key. It's recommended to add 'grlx' to your PATH for easier access. ```bash # replace 'linux' with darwin if you're on macOS curl -L https://releases.grlx.dev/linux/amd64/latest/grlx > grlx && chmod +x grlx ./grlx init ``` -------------------------------- ### Verify grlx GitHub Release Downloads Source: https://github.com/gogrlx/grlx/blob/master/SECURITY.md Instructions for verifying the authenticity and integrity of grlx releases downloaded from GitHub. This involves downloading the checksums file and its GPG signature, then using GPG to verify the signature and sha256sum to verify the binary checksums. ```bash curl -LO https://github.com/gogrlx/grlx/releases/download/v1.0.0/checksums.txt curl -LO https://github.com/gogrlx/grlx/releases/download/v1.0.0/checksums.txt.sig gpg --verify checksums.txt.sig checksums.txt sha256sum -c checksums.txt --ignore-missing ``` -------------------------------- ### Verify grlx S3 Artifact Downloads Source: https://github.com/gogrlx/grlx/blob/master/SECURITY.md Instructions for verifying the authenticity and integrity of grlx artifacts downloaded from S3. This involves downloading the artifact, its checksums file, and its GPG signature, then using GPG to verify the signature and sha256sum to verify the binary checksums. ```bash curl -LO https://artifacts.grlx.dev/linux/amd64/latest/grlx curl -LO https://artifacts.grlx.dev/linux/amd64/latest/checksums.txt curl -LO https://artifacts.grlx.dev/linux/amd64/latest/checksums.txt.sig gpg --verify checksums.txt.sig checksums.txt sha256sum -c checksums.txt --ignore-missing ``` -------------------------------- ### Import grlx GPG Public Key Source: https://github.com/gogrlx/grlx/blob/master/SECURITY.md Provides multiple methods to import the grlx GPG public key, which is essential for verifying the authenticity and integrity of grlx releases. Users can import from a keyserver, directly from the GitHub repository, or from a local file. ```bash gpg --keyserver keyserver.ubuntu.com --recv-keys 33DCE4DD ``` ```bash curl -s https://raw.githubusercontent.com/gogrlx/grlx/master/gpg-public-key.asc | gpg --import ``` ```bash gpg --import gpg-public-key.asc ``` -------------------------------- ### Verify grlx GPG Key Fingerprint Source: https://github.com/gogrlx/grlx/blob/master/SECURITY.md Command to verify the fingerprint of the imported grlx GPG public key. This step ensures that the key imported matches the expected fingerprint, confirming its authenticity and preventing man-in-the-middle attacks. ```bash gpg --fingerprint 33DCE4DD ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.