{"id":14965273,"url":"https://github.com/blu-base/salt-plugin","last_synced_at":"2025-10-25T11:31:17.129Z","repository":{"id":204542495,"uuid":"712102559","full_name":"blu-base/salt-plugin","owner":"blu-base","description":"A Saltstack plugin for Rundeck","archived":false,"fork":false,"pushed_at":"2024-07-15T19:27:41.000Z","size":155,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T07:03:38.902Z","etag":null,"topics":["rundeck","rundeck-plugin","salt","saltstack"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blu-base.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-30T19:47:52.000Z","updated_at":"2024-07-14T14:31:05.000Z","dependencies_parsed_at":"2023-12-03T16:40:39.001Z","dependency_job_id":"89c6892a-01da-4f13-a20c-41a402e7c31f","html_url":"https://github.com/blu-base/salt-plugin","commit_stats":null,"previous_names":["blu-base/salt-plugin"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blu-base%2Fsalt-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blu-base%2Fsalt-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blu-base%2Fsalt-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blu-base%2Fsalt-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blu-base","download_url":"https://codeload.github.com/blu-base/salt-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238128543,"owners_count":19421053,"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":["rundeck","rundeck-plugin","salt","saltstack"],"created_at":"2024-09-24T13:34:30.860Z","updated_at":"2025-10-25T11:31:11.859Z","avatar_url":"https://github.com/blu-base.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Salt Stack Plugin Rundeck Plugin\n\nThis repository provides integration between [Rundeck](https://www.rundeck.com)\nand [SaltStack](https://www.saltproject.io). It aims to provide a number of\nproviders which only require minimal changes to the rundeck server and salt-api\nand it's master.\n\nCurrently the following plugins are included:\n  * NodeExecutor\n  * FileCopier\n  * Resource Model Source\n\nUse cases:\n  * Run Adhoc commands\n  * Embed Scripts in a Workflow\n  * Command Node Step\n  * Upload files\n\n## Requirements\n\n### Rundeck instance\nPython 3.6+ is required. For communication with the salt-api, the python\nlibrary `salt-pepper\u003e=0.76` is required on the rundeck server.\nUse `pip install salt-pepper` to install it.\nFurther instructions on pepper can be found here: https://github.com/saltstack/pepper\n\nMoreover, the command `python` must exist within Rundeck's `PATH` environment.\nUsually it can be set systemwide by `updates-alternatives`.\n\n\n### Salt-API\nThe library `salt-pepper` in the current state is focussing on the `cherry_py`\nbackend for the Salt-API. Follow salt's documentation configuring its API\n[here](https://docs.saltproject.io/en/latest/ref/netapi/all/salt.netapi.rest_cherrypy.html).\nYou'll also have to [specify credentials](https://docs.saltproject.io/en/latest/topics/eauth/index.html)\nand its ACL to be used by rundeck.\n\n## Components\n\n### NodeExecutor\nThis plugin forwards the specified command to the `cmd.run` execution module via\nthe Salt API. It uses the `local` client of salt's `netapi`.\n\nA Node's `hostname` in Rundeck must match the respective minion id in salt.\nThe nodes file in yaml format would contain entries such as:\n```yaml\nminion.example.org:\n  description: A server with salt-minion\n  hostname: minion.example.org\n  nodename: minion.example.org\n  username:\n  osArch: x86_64\n  osFamily: unix\n  osName: Linux\n  tags: 'salt-minion,server'\n  node-executor: salt-node-executor\n```\nIf you set up the Salt-NodeExecutor as default NodeExecutor, the attribute\n`node-executor` is not required. For further Details on the nodes file can be\nfound in the [respective\ndocumentation](https://docs.rundeck.com/docs/manual/document-format-reference/).\n\n\nPlugin Configuration:\n* `Run As` sets the user in who's context the comand is run. Optional.\n* `Additional Arguments` can be used to set further keyword arguments for\n  salt's `cmd.run` module. Optional. See its documentation for further details:\n  [here](https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.cmdmod.html#salt.modules.cmdmod.run)\n* The node attribute `salt-cmd-run-args` can also be used to provide additional\n  arguments to salt's `cmd.run` module, individually per node.\n\n  E.g.:\n  ```yaml\n  minion.example.org:\n    hostname: minion.example.org\n    nodename: foobar_minion\n    username:\n    node-executor: salt-node-executor\n    salt-cmd-run-args: \"env='{\\\"FOO\\\": \\\"bar\\\"}'\"\n  ```\n\n### FileCopier\nThis plugin forwards files to a Node via the Salt API. In combination with the\nSalt NodeExecutor, the inline script plugin can be used as well.\n\nThis FileCopier is intended for small files only, since it's sending files via\nSalt's bus.\n\nA Node's `hostname` in Rundeck must match the respective minion id in salt.\nThe nodes file in yaml format would contain entries such as:\n```yaml\nminion.example.org:\n  description: A server with salt-minion\n  hostname: minion.example.org\n  nodename: minion.example.org\n  username:\n  osArch: x86_64\n  osFamily: unix\n  osName: Linux\n  tags: 'salt-minion,server'\n  node-executor: salt-node-executor\n  file-copier: salt-file-copier\n```\n\nConfiguration:\n* `Chunksize` can modify the chunk size send via the Salt Event bus.\n\n### Resource Model Source\nThis plugin dynamically generates Nodes from the Salt API. Grains can be\nselected to retrieve tags and attributes. By default all minions connected to a\nsalt-master are targeted, as long as they return valid information.\n\n\n## Build\n\n* Using gradle\n```\ngradle clean build\n```\n\n* Using make\n\n```\nmake clean build\n```\n\n## Install\n\n```\ncp build/libs/salt-plugin.zip $RDECK_BASE/libext\n```\n\n\n\n## Attribution\n\nThis repository contains derivate work from the following projects:\n\n* [salt](https://github.com/saltstack/salt)\n* [salt-gen-source](https://github.com/amendlik/salt-gen-resource)\n* [pepper](https://github.com/saltstack/pepper)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblu-base%2Fsalt-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblu-base%2Fsalt-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblu-base%2Fsalt-plugin/lists"}