### Setup and Run Semaphore Server Source: https://docs.semaphoreui.com/print Commands to set up and run the Semaphore server. The setup command initializes the necessary configurations, and the server command starts the Semaphore application with a specified configuration file. ```bash semaphore setup semaphore server --config=./config.json ``` -------------------------------- ### Initial Semaphore Setup Source: https://docs.semaphoreui.com/print Command for initial setup of Semaphore. This is applicable when Semaphore is not installed via Snap. ```bash semaphore setup ``` -------------------------------- ### Download and Install Semaphore (Linux amd64) Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file This snippet demonstrates downloading the Semaphore binary for Linux amd64 from a tar.gz archive, unpacking it, and running the setup command. It is a prerequisite for running the Semaphore server. ```shell wget https://github.com/semaphoreui/semaphore/releases/download/v2.15.0/semaphore_2.15.0_linux_amd64.tar.gz tar xf semaphore_2.15.0_linux_amd64.tar.gz ./semaphore setup ``` -------------------------------- ### Start Semaphore Server and Runner with Configuration Source: https://docs.semaphoreui.com/print Commands to start the Semaphore server and runner processes, specifying the path to the configuration file. Ensure the `config.json` is correctly formatted and located. ```bash semaphore server --config ./config.json ``` ```bash semaphore runner start --config ./config.json ``` -------------------------------- ### Download and Extract Semaphore (Linux ARM64) Source: https://docs.semaphoreui.com/print This snippet demonstrates downloading the Semaphore binary for Linux ARM64 architecture using wget, extracting the archive, and starting the setup. ```shell wget https://github.com/semaphoreui/semaphore/releases/download/v2.15.0/semaphore_2.15.0_linux_arm64.tar.gz tar xf semaphore_2.15.0_linux_arm64.tar.gz ./semaphore setup ``` -------------------------------- ### Download and Install Semaphore (Linux arm64) Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file This snippet shows how to download the Semaphore binary for Linux arm64 from a tar.gz archive, extract its contents, and execute the setup command. This prepares the system for running Semaphore. ```shell wget https://github.com/semaphoreui/semaphore/releases/download/v2.15.0/semaphore_2.15.0_linux_arm64.tar.gz tar xf semaphore_2.15.0_linux_arm64.tar.gz ./semaphore setup ``` -------------------------------- ### Example Deploy Ansible Role Source: https://docs.semaphoreui.com/print This provides an example of an Ansible role for a deployment task. It covers downloading the artifact from S3, unpacking it, updating configuration files, and restarting the application service. ```yaml # 1. Download `app-{{semaphore_vars.task_details.incoming_version}}.tar.gz` from an S3 bucket to destination servers # 2. Unpack `app-{{semaphore_vars.task_details.incoming_version}}.tar.gz` to destination directory # 3. Create or update configuration files # 4. Restart app service ``` -------------------------------- ### Download and Install Semaphore (Windows amd64) Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file This code block details the process of downloading the Semaphore binary for Windows amd64 as a zip archive using PowerShell, extracting the contents, and running the setup command to prepare for Semaphore execution. ```powershell Invoke-WebRequest ` -Uri ("https://github.com/semaphoreui/semaphore/releases/" + "download/v2.15.0/semaphore_2.15.0_windows_amd64.zip") ` -OutFile semaphore.zip Expand-Archive -Path semaphore.zip -DestinationPath ./ ./semaphore setup ``` -------------------------------- ### Semaphore CLI: Specific Migration Application Example Source: https://docs.semaphoreui.com/print An example of using the `semaphore migrate` command to apply all database migrations up to a specific version (e.g., 2.15.1). This is useful for controlled upgrades. ```bash semaphore migrate --apply-to 2.15.1 ``` -------------------------------- ### Python Requirements File Example Source: https://docs.semaphoreui.com/print An example of a `requirements.txt` file used to list Python packages required for a project. This file is essential for reproducible Python environments, especially when using pip. ```text ansible # for common jinja-filters netaddr jmespath # for common modules pywinrm passlib requests docker ``` -------------------------------- ### Manage Semaphore Snap Configurations Source: https://docs.semaphoreui.com/print Commands to view, get, and set configurations for Semaphore when installed via Snap. Includes changing the port and restarting the service. ```bash sudo snap get semaphore ``` ```bash sudo snap set semaphore port=4444 ``` ```bash sudo snap restart semaphore ``` -------------------------------- ### Ansible Requirements File Example Source: https://docs.semaphoreui.com/print An example of a `requirements.yml` file used to define Ansible collections and roles to be installed. This is crucial for ensuring all necessary Ansible components are available. ```yaml --- collections: - 'namespace.collection' # for common collections: - 'community.general' - 'ansible.posix' - 'community.mysql' - 'community.crypto' roles: - src: 'namespace.role' ``` -------------------------------- ### Semaphore CLI: Basic Commands Source: https://docs.semaphoreui.com/print Provides essential Semaphore CLI commands for checking the current version, accessing help, and initiating setup. These are foundational commands for interacting with the Semaphore system. ```bash semaphore version ``` ```bash semaphore help ``` ```bash semaphore setup ``` -------------------------------- ### Run Semaphore Server Source: https://docs.semaphoreui.com/print This command starts the Semaphore server, specifying the configuration file to use. Semaphore will then be accessible at https://localhost:3000. ```shell ./semaphore server --config=./config.json ``` -------------------------------- ### Example Build Ansible Role Source: https://docs.semaphoreui.com/print This outlines a typical Ansible role for a build task. It includes steps for fetching source code, compilation, packaging artifacts with versioning, and uploading to an S3 bucket. ```yaml # 1. Get app source code from GitHub # 2. Compile source code # 3. Pack created binary to a tarball with name `app-{{semaphore_vars.task_details.target_version}}.tar.gz` # 4. Send `app-{{semaphore_vars.task_details.target_version}}.tar.gz` to an S3 bucket ``` -------------------------------- ### Run Semaphore Server Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file This command initiates the Semaphore server process, specifying the configuration file to be used. It assumes that Semaphore has already been installed and the necessary configuration is in place. ```shell ./semaphore server --config=./config.json ``` -------------------------------- ### Example LDAP Configuration for Semaphore UI Source: https://docs.semaphoreui.com/print This JSON object presents a sample LDAP configuration for Semaphore UI, intended for use with a self-hosted LDAP server (like the one started with Docker). It details server, bind, search, and mapping parameters tailored for this environment. ```json { "ldap_binddn": "cn=admin,dc=example,dc=org", "ldap_bindpassword": "pwd", "ldap_server": "ldap-server.com:1389", "ldap_searchdn": "dc=example,dc=org", "ldap_searchfilter": "(&(objectClass=inetOrgPerson)(uid=%s))", "ldap_mappings": { "mail": "{{ .cn }}@ldap.your-domain.com", "uid": "|", "cn": "cn" }, "ldap_enable": true, "ldap_needtls": false } ``` -------------------------------- ### Start and Unregister Semaphore Runner Source: https://docs.semaphoreui.com/print Commands to start and unregister a Semaphore runner using its configuration file. Starting the runner allows it to execute tasks, while unregistering removes its connection from the server. ```bash semaphore runner start --config /path/to/your/config/file.json semaphore runner unregister --config /path/to/your/config/file.json ``` -------------------------------- ### Download and Extract Semaphore (Linux AMD64) Source: https://docs.semaphoreui.com/print This snippet shows how to download the Semaphore binary for Linux AMD64 architecture using wget, extract the archive, and initiate the setup process. ```shell wget https://github.com/semaphoreui/semaphore/releases/download/v2.15.0/semaphore_2.15.0_linux_amd64.tar.gz tar xf semaphore_2.15.0_linux_amd64.tar.gz ./semaphore setup ``` -------------------------------- ### Manage Semaphore systemd Service Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file These commands are used to manage the Semaphore service on systems using systemd. They include reloading the systemd daemon, starting the Semaphore service, checking its status, and enabling it to start automatically on boot. ```shell sudo systemctl daemon-reload sudo systemctl start semaphore sudo systemctl status semaphore sudo systemctl enable semaphore ``` -------------------------------- ### Initialize Semaphore UI Setup Source: https://docs.semaphoreui.com/administration-guide/cli Initiates the setup process for the Semaphore UI, typically used for first-time configurations. It may guide the user through necessary initial settings. ```bash semaphore setup ``` -------------------------------- ### Generate Semaphore Configuration Interactively Source: https://docs.semaphoreui.com/print Use these commands to interactively generate the `config.json` file for the Semaphore server or runner. This is the primary method for initial setup. ```bash semaphore setup ``` ```bash semaphore runner setup ``` -------------------------------- ### Run Semaphore Server Source: https://docs.semaphoreui.com/administration-guide/installation/package-manager Starts the Semaphore UI server. Requires a configuration file (e.g., config.json) to be present in the current directory or specified path. ```bash semaphore server --config=./config.json ``` -------------------------------- ### Configure and Register Semaphore Runner Source: https://docs.semaphoreui.com/print Commands to set up and register a Semaphore runner. The setup command generates a configuration file, which is then used for registration, optionally via stdin for the registration token. This process is essential for connecting a runner to the Semaphore server. ```bash semaphore runner setup --config /path/to/your/config/file.json semaphore runner register --config /path/to/your/config/file.json echo REGISTRATION_TOKEN | semaphore runner register --stdin-registration-token --config /path/to/your/config/file.json ``` -------------------------------- ### Semaphore config.json Structure Source: https://docs.semaphoreui.com/print This is an example of the `config.json` file used by Semaphore. It includes settings for database connections, Git clients, authentication, runners, logging, and process sandboxing. ```json { "mysql_test": { "host": "127.0.0.1:3306", "user": "root", "pass": "***", "name": "semaphore" }, "dialect": "mysql", "git_client": "go_git", "auth": { "totp": { "enabled": false, "allow_recovery": true } }, "use_remote_runner": true, "runner_registration_token": "73fs***", "tmp_path": "/tmp/semaphore", "cookie_hash": "96Nt***", "cookie_encryption": "x0bs***", "access_key_encryption": "j1ia***", "max_tasks_per_template": 3, "schedule": { "timezone": "UTC" }, "log": { "events": { "enabled": true, "path": "../events.log" } }, "process": { "chroot": "/opt/semaphore/sandbox" } } ``` -------------------------------- ### Manage Semaphore Snap Service and Configuration Source: https://docs.semaphoreui.com/print These commands interact with the Semaphore snap installation. `snap services semaphore` checks the service status, while `snap get semaphore` displays current configuration options. ```bash sudo snap services semaphore sudo snap get semaphore ``` -------------------------------- ### Download and Extract Semaphore (Windows AMD64) Source: https://docs.semaphoreui.com/print This snippet illustrates downloading the Semaphore binary for Windows AMD64 using PowerShell's Invoke-WebRequest, extracting the zip archive, and running the setup. ```powershell Invoke-WebRequest ` -Uri ("https://github.com/semaphoreui/semaphore/releases/" + "download/v2.15.0/semaphore_2.15.0_windows_amd64.zip") ` -OutFile semaphore.zip Expand-Archive -Path semaphore.zip -DestinationPath ./ ./semaphore setup ``` -------------------------------- ### Manage Semaphore Systemd Service Source: https://docs.semaphoreui.com/print These commands are used to manage the Semaphore systemd service. `daemon-reload` updates systemd configurations, `start` initiates the service, `status` checks its running state, and `enable` ensures it starts on boot. ```bash sudo systemctl daemon-reload sudo systemctl start semaphore sudo systemctl status semaphore sudo systemctl enable semaphore ``` -------------------------------- ### Semaphore CLI: Server and Runner Control Source: https://docs.semaphoreui.com/print Commands to start the main Semaphore server and its associated runner processes. These are critical for the operational status of the Semaphore environment. ```bash semaphore server ``` ```bash semaphore runner ``` -------------------------------- ### Claim Expression Example (Text) Source: https://docs.semaphoreui.com/print This example shows a claim expression format used for configuring `username_claim` and `email_claim` in OIDC providers. It demonstrates how to map fields from the identity provider or use a fallback expression. ```text email | {{ .username }}@your-domain.com ``` -------------------------------- ### Install Semaphore via Snap Source: https://docs.semaphoreui.com/print This command installs Semaphore using the Snap package manager. After installation, Semaphore will be available at https://localhost:3000. ```bash sudo snap install semaphore ``` -------------------------------- ### Create systemd Service File for Semaphore Source: https://docs.semaphoreui.com/administration-guide/installation/binary-file This snippet demonstrates how to create a systemd service file for Semaphore. It configures the service to run as a simple process, reload on HUP signals, start with a specified server command and config file, log using syslog, and restart automatically. Replace placeholders for paths. ```shell sudo cat > /etc/systemd/system/semaphore.service < ``` ```bash semaphore migrate --undo-to ``` -------------------------------- ### Install Kerberos Packages on Semaphore Host Source: https://docs.semaphoreui.com/print Installs necessary Kerberos development libraries and the Kerberos user package on the Semaphore host. It also configures the default Kerberos realm in `/etc/krb5.conf` to match the Active Directory domain. ```bash sudo apt install libkrb5-dev krb5-user ``` ```ini [libdefaults] default_realm = YOUR.DOMAIN.NAME ``` -------------------------------- ### Configure DingTalk Alerts Source: https://docs.semaphoreui.com/print This JSON configuration example shows how to enable DingTalk notifications in Semaphore UI. Set `dingtalk_alert` to true and provide the webhook URL in the `dingtalk_url` field. ```json { "dingtalk_alert": true, "dingtalk_url": "...", } ``` -------------------------------- ### Configure Remote Runner (Environment Variables) Source: https://docs.semaphoreui.com/print This example demonstrates how to configure remote runners for Semaphore using environment variables. This method is an alternative to using a JSON configuration file and sets the necessary parameters for runner registration. ```shell SEMAPHORE_USE_REMOTE_RUNNER=True SEMAPHORE_RUNNER_REGISTRATION_TOKEN=long_string_of_random_characters ``` -------------------------------- ### Ansible `semaphore_vars` for Build Tasks Source: https://docs.semaphoreui.com/print This example illustrates the structure of `semaphore_vars` provided to Ansible playbooks when a build task is executed. It includes details like the task type, username, message, and the target version for the artifact. ```yaml semaphore_vars: task_details: type: build username: user123 message: New version of some feature target_version: 1.5.33 ``` -------------------------------- ### Ansible `semaphore_vars` for Deploy Tasks Source: https://docs.semaphoreui.com/print This example shows the `semaphore_vars` available for Ansible playbooks during a deploy task. It contains information such as the task type, username, message, and the incoming version of the artifact to be deployed. ```yaml semaphore_vars: task_details: type: deploy username: user123 message: Deploy new feature to servers incoming_version: 1.5.33 ``` -------------------------------- ### Ansible Dependency Upgrade with Virtual Environment Activation (Systemd) Source: https://docs.semaphoreui.com/print Sets up the systemd service to activate a Python virtual environment and then upgrade Ansible collections and roles from a requirements file before starting the Semaphore UI. This ensures Ansible dependencies are managed within the virtual environment context. ```systemd # to auto-upgrade ansible collections and roles at service startup ExecStartPre=/bin/bash -c 'source /home/semaphore/venv/bin/activate \ && ansible-galaxy collection install --upgrade -r /home/semaphore/requirements.yml \ && ansible-galaxy role install --force -r /home/semaphore/requirements.yml' ``` -------------------------------- ### Configure Rocket.Chat Alerts Source: https://docs.semaphoreui.com/print This JSON configuration example enables Rocket.Chat notifications within Semaphore UI. You need to set `rocketchat_alert` to true and provide the webhook URL in the `rocketchat_url` field. ```json { "rocketchat_alert": true, "rocketchat_url": "...", } ``` -------------------------------- ### Install Semaphore .rpm Package (Linux ARM64) Source: https://docs.semaphoreui.com/print Installs the Semaphore .rpm package for CentOS and RedHat systems on Linux ARM64 architecture. This involves downloading the package using wget and then installing it using yum. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_arm64.rpm sudo yum install semaphore_2.15.0_linux_arm64.rpm ``` -------------------------------- ### Add Admin User to Semaphore (Snap Install) Source: https://docs.semaphoreui.com/print This sequence of commands stops the Semaphore snap service, adds an administrator user with specified credentials, and then restarts the service. This is necessary for initial login after a snap installation. ```bash sudo snap stop semaphore sudo semaphore user add --admin \ --login john \ --name=John \ --email=john1996@gmail.com \ --password=12345 sudo snap start semaphore ``` -------------------------------- ### Upgrade Semaphore via Snap Source: https://docs.semaphoreui.com/print Command to upgrade Semaphore to the latest stable version when installed using Snap. This ensures you have the most recent features and security patches. ```bash sudo snap refresh semaphore ``` -------------------------------- ### Install Semaphore on Debian/Ubuntu (amd64) Source: https://docs.semaphoreui.com/administration-guide/installation/package-manager Downloads and installs the Semaphore UI package for Debian and Ubuntu systems with amd64 architecture. Requires superuser privileges for installation. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_amd64.deb sudo dpkg -i semaphore_2.15.0_linux_amd64.deb ``` -------------------------------- ### Configure Microsoft Teams Alerts Source: https://docs.semaphoreui.com/print This is a JSON configuration example for enabling Microsoft Teams notifications in Semaphore UI. It requires setting `microsoft_teams_alert` to true and providing the corresponding webhook URL in `microsoft_teams_url`. ```json { "microsoft_teams_alert": true, "microsoft_teams_url": "...", } ``` -------------------------------- ### Install Semaphore on Debian/Ubuntu (arm64) Source: https://docs.semaphoreui.com/administration-guide/installation/package-manager Downloads and installs the Semaphore UI package for Debian and Ubuntu systems with arm64 architecture. Requires superuser privileges for installation. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_arm64.deb sudo dpkg -i semaphore_2.15.0_linux_arm64.deb ``` -------------------------------- ### Install Semaphore .deb Package (Linux AMD64) Source: https://docs.semaphoreui.com/print Installs the Semaphore .deb package for Debian and Ubuntu systems on Linux AMD64 architecture. This involves downloading the package using wget and then installing it using dpkg. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_amd64.deb sudo dpkg -i semaphore_2.15.0_linux_amd64.deb ``` -------------------------------- ### Install Semaphore .deb Package (Linux ARM64) Source: https://docs.semaphoreui.com/print Installs the Semaphore .deb package for Debian and Ubuntu systems on Linux ARM64 architecture. This involves downloading the package using wget and then installing it using dpkg. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_arm64.deb sudo dpkg -i semaphore_2.15.0_linux_arm64.deb ``` -------------------------------- ### Install Semaphore .rpm Package (Linux AMD64) Source: https://docs.semaphoreui.com/print Installs the Semaphore .rpm package for CentOS and RedHat systems on Linux AMD64 architecture. This involves downloading the package using wget and then installing it using yum. ```bash wget https://github.com/semaphoreui/semaphore/releases/\ndownload/v2.15.0/semaphore_2.15.0_linux_amd64.rpm sudo yum install semaphore_2.15.0_linux_amd64.rpm ``` -------------------------------- ### Running a Single Command as a Service User Source: https://docs.semaphoreui.com/print Shows how to execute a single command within the context of a specific service user (e.g., 'semaphore'). This allows you to run commands with the user's privileges without fully switching the shell. ```bash sudo --login -u semaphore ``` -------------------------------- ### Create Systemd Service File for Semaphore Source: https://docs.semaphoreui.com/print This snippet shows how to create a systemd service file for Semaphore. It requires replacing placeholder paths for the Semaphore executable and configuration file. This enables Semaphore to run as a background service. ```bash sudo cat > /etc/systemd/system/semaphore.service < /home/semaphore/venv/bin/python3 ``` -------------------------------- ### Configure Apache Virtual Host for Semaphore Source: https://docs.semaphoreui.com/print Sets up an SSL-enabled virtual host to proxy HTTP and WebSocket traffic to a Semaphore server running on localhost:3000. This configuration is essential for secure and proper communication with the Semaphore application. ```apache ServerName example.com ServerAdmin webmaster@localhost SSLEngine on SSLCertificateFile /path/to/example.com.crt SSLCertificateKeyFile /path/to/example.com.key ProxyPreserveHost On ProxyPass http://127.0.0.1:3000/ ProxyPassReverse http://127.0.0.1:3000/ RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] ProxyPass ws://127.0.0.1:3000/api/ws/ ProxyPassReverse ws://127.0.0.1:3000/api/ws/ ``` -------------------------------- ### Start Semaphore Runner Source: https://docs.semaphoreui.com/administration-guide/runners Command to start the Semaphore runner service using its configuration file. Once started, the runner is ready to accept and execute tasks assigned by the Semaphore server. ```bash semaphore runner start --config /path/to/your/config/file.json ``` -------------------------------- ### Semaphore API Authorization Header Source: https://docs.semaphoreui.com/print This snippet shows the required format for the Authorization header when making requests to the Semaphore API. It demonstrates how to include an API token using the Bearer authentication scheme. ```text Authorization: Bearer YOUR_API_TOKEN ``` -------------------------------- ### Configure Semaphore UI with Docker Compose Source: https://docs.semaphoreui.com/print This `docker-compose.yml` file sets up Semaphore UI with a MySQL database. It includes configurations for environment variables, database connection details, and optional LDAP settings. Note that sensitive variables like passwords and encryption keys need to be explicitly set. ```yaml services: # uncomment this section and comment out the mysql section to use postgres instead of mysql #postgres: #restart: unless-stopped #image: postgres:14 #hostname: postgres #volumes: # - semaphore-postgres:/var/lib/postgresql/data #environment: # POSTGRES_USER: semaphore # POSTGRES_PASSWORD: semaphore # POSTGRES_DB: semaphore # if you wish to use postgres, comment the mysql service section below mysql: restart: unless-stopped image: mysql:8.0 hostname: mysql volumes: - semaphore-mysql:/var/lib/mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_DATABASE: semaphore MYSQL_USER: semaphore MYSQL_PASSWORD: semaphore semaphore: restart: unless-stopped ports: - 3000:3000 image: semaphoreui/semaphore:latest environment: SEMAPHORE_DB_USER: semaphore SEMAPHORE_DB_PASS: semaphore SEMAPHORE_DB_HOST: mysql # for postgres, change to: postgres SEMAPHORE_DB_PORT: 3306 # change to 5432 for postgres SEMAPHORE_DB_DIALECT: mysql # for postgres, change to: postgres SEMAPHORE_DB: semaphore # To use SQLite instead of MySQL/Postgres (v2.16+) # SEMAPHORE_DB_DIALECT: sqlite # SEMAPHORE_DB: "/etc/semaphore/semaphore.sqlite" SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/ SEMAPHORE_ADMIN_PASSWORD: changeme SEMAPHORE_ADMIN_NAME: admin SEMAPHORE_ADMIN_EMAIL: admin@localhost SEMAPHORE_ADMIN: admin SEMAPHORE_ACCESS_KEY_ENCRYPTION: gs72mPntFATGJs9qK0pQ0rKtfidlexiMjYCH9gWKhTU= SEMAPHORE_LDAP_ACTIVATED: 'no' # if you wish to use ldap, set to: 'yes' SEMAPHORE_LDAP_HOST: dc01.local.example.com SEMAPHORE_LDAP_PORT: '636' SEMAPHORE_LDAP_NEEDTLS: 'yes' SEMAPHORE_LDAP_DN_BIND: 'uid=bind_user,cn=users,cn=accounts,dc=local,dc=example,dc=com' SEMAPHORE_LDAP_PASSWORD: 'ldap_bind_account_password' SEMAPHORE_LDAP_DN_SEARCH: 'dc=local,dc=example,dc=com' SEMAPHORE_LDAP_SEARCH_FILTER: "(& (uid=%s)(memberOf=cn=ipausers,cn=groups,cn=accounts,dc=local,dc=example,dc=com))" TZ: UTC depends_on: - mysql # for postgres, change to: postgres volumes: semaphore-mysql: # to use postgres, switch to: semaphore-postgres ``` -------------------------------- ### Netbox Dynamic Inventory Plugin Configuration Source: https://docs.semaphoreui.com/print Configuration for the `netbox.netbox.nb_inventory` Ansible plugin to create a dynamic inventory in Semaphore. It requires the Netbox API endpoint, an API token for authentication, and can optionally disable certificate validation. ```yaml plugin: netbox.netbox.nb_inventory api_endpoint: http://your_netbox_url_here token: YOUR_NETBOX_API_TOKEN validate_certs: False config_context: False ```