{"id":19905584,"url":"https://github.com/ekristen/salt-teleport","last_synced_at":"2025-07-14T00:09:13.087Z","repository":{"id":48103705,"uuid":"83732046","full_name":"ekristen/salt-teleport","owner":"ekristen","description":"SaltStack Teleport Module and State Functions","archived":false,"fork":false,"pushed_at":"2021-08-06T13:36:11.000Z","size":7,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T09:25:45.341Z","etag":null,"topics":["saltstack","teleport"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ekristen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-02T22:38:04.000Z","updated_at":"2022-11-11T20:22:59.000Z","dependencies_parsed_at":"2022-08-12T18:40:39.984Z","dependency_job_id":null,"html_url":"https://github.com/ekristen/salt-teleport","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ekristen/salt-teleport","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekristen%2Fsalt-teleport","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekristen%2Fsalt-teleport/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekristen%2Fsalt-teleport/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekristen%2Fsalt-teleport/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekristen","download_url":"https://codeload.github.com/ekristen/salt-teleport/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekristen%2Fsalt-teleport/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265224164,"owners_count":23730348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["saltstack","teleport"],"created_at":"2024-11-12T20:33:55.616Z","updated_at":"2025-07-14T00:09:13.047Z","avatar_url":"https://github.com/ekristen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)\n\n# salt-teleport\n\nThis is a custom module and state for SaltStack to support Teleport.\n\nIt comes with basic user management, absent and present, and the ability to generate a token to join a node using publish.publish!\n\n## Features\n\n### Dynamic Teleport Node Authentication \n\nThis feature allows a minion to use the `publish.publish` feature to request an authentication token from another minion (the teleport auth server) and then populate the teleport.yaml config. From there the service can be started and will register with the teleport auth service.\n\nThere are a few checks the `node_authentication_token` function does. First it checks to see if `/var/lib/teleport/auth_token` exists and if the token in there has expired yet. It also checks to see if `/var/lib/teleport/node.key` is present. If the node.key is missing it is assumed that the node has not registered itself with the auth service.\n\nIf it determines that it is not authenticated, the module function will run publish.publish to get the token and you can use it to populate a config and trigger any other actions necessary.\n\n## Installation\n\nCopy the `_modules` and the `_states` to your `base` file roots or gitfs repo, then make sure you run `salt '*' saltutil.sync_all`\n\n## Examples\n\n### Dynamic Teleport Node Authentication Token\n\nTemplate File\n\n```yaml\nteleport:\n  token: {{ token }}\n\nssh_service:\n  enabled: yes\n\nauth_service:\n  enabled: no\n\nproxy_service:\n  enabled: no\n```\n\nSLS File\n\n```yaml\nteleport-config:\n  file.managed:\n    - name: /etc/teleport.yaml\n    - source: salt://config.tmpl\n    - template: jinja\n    - defaults:\n        token: {{ salt['teleport.node_authentication_token']('role:teleport-auth', expr_form='grain') }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekristen%2Fsalt-teleport","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekristen%2Fsalt-teleport","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekristen%2Fsalt-teleport/lists"}