{"id":30741811,"url":"https://github.com/hhirsch/provisioner","last_synced_at":"2026-05-18T19:36:23.826Z","repository":{"id":308554104,"uuid":"1033230528","full_name":"hhirsch/provisioner","owner":"hhirsch","description":"puppet standalone with git control repository on your server","archived":false,"fork":false,"pushed_at":"2025-08-17T16:15:43.000Z","size":36,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-17T18:13:58.763Z","etag":null,"topics":["configuration-management","devops","puppet"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hhirsch.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,"zenodo":null}},"created_at":"2025-08-06T13:48:53.000Z","updated_at":"2025-08-17T16:15:46.000Z","dependencies_parsed_at":"2025-08-06T16:13:24.237Z","dependency_job_id":"00a33693-5912-47e9-b225-2aba9d4b9cb8","html_url":"https://github.com/hhirsch/provisioner","commit_stats":null,"previous_names":["hhirsch/provisioner"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hhirsch/provisioner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhirsch%2Fprovisioner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhirsch%2Fprovisioner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhirsch%2Fprovisioner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhirsch%2Fprovisioner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hhirsch","download_url":"https://codeload.github.com/hhirsch/provisioner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hhirsch%2Fprovisioner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273534563,"owners_count":25122679,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["configuration-management","devops","puppet"],"created_at":"2025-09-04T01:02:21.300Z","updated_at":"2026-05-18T19:36:23.808Z","avatar_url":"https://github.com/hhirsch.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT]\n\u003e This project has moved to Codeberg: https://codeberg.org/SneakyOctopus/provisioner\n\n# Provisioner\n\u003e [!WARNING]\n\u003e This tool is designed to be run either on a brand new system or a VM.\n\u003e It is not tested to be production ready.\n\u003e It will make your system unstable and insecure and will delete and/or expose your data.\n\u003e Use it at your own risk. You are responsible for everything you do with the provided software.\n\nProvisioner is a simple tool to deploy a payload to your server and run it.\nYou can switch the payload with your own code. \n\nCopyright © 2025 Henry Hirsch  \nThis program is licensed under the GNU General Public License v3.  \nSee http://www.gnu.org/licenses/gpl-3.0.html for details.  \n\n\u003e [!IMPORTANT]\n\u003e The default payload is created for Debian 12 specifically the apt commands called in this script\n\u003e will not work on most systems.\n\nThe default payload will install puppet and git on the server, create a control repository for the root user and create a git hook that will run puppet on every file in the manifest directory in the repository whenever code is pushed.\n\nWhen you run the provision script it will prompt you to enter a server name to deploy the payload to.\nThere is no confirmation step in the provision script, it will try to deploy and run immediately.\n\n# Why You Would Want To Use The Payload?\nIt is just a simple way to bootstrap puppet standalone with a git based worflow either on a server or a vagrant VM.\nThe payload will re-deploy the git hook if it detects that the control repository already exists.\nThis way you can change the git hook after deployment.\n# Why You Would Want To Use The Provisioner With A Custom Payload?\nThe provision script combined with your custom payload will add value to your workflow if for now you have been maintaining your server\nexclusively over ssh without any special tooling. \nYou'll go from 0 reproducability to some reproduceability without a steep learning curve.\n\n# Usage\nIf the provision script is not executable, make it executable with\n```\nchmod +x provision\n```\n\nFirst you deploy the payload and run it.\nType on the client:\n```\n./provision\n```\nYou will be promted for the server host name or IP.\nConfirm with enter.\n\nClone the repository with:\n```\ngit clone root@\u003cserver name\u003e:/root/control.git\n```\n\nAdd hello.pp to the manifests directory with the following content:\n```\nfile {'/data/helloworld.txt':\n  ensure  =\u003e present,\n  content =\u003e \"Hello World!\",\n}\n```\n\nPush and you should see 1 success in green under events in the generated report.\n```\ngit push origin main\n```\n\n# Automatic Testing With Vagrant\n\u003e [!IMPORTANT]\n\u003e When prompted for a password use the password \"vagrant\".\n\u003e Vagrant might also prompt you for your current users password.\n\u003e If you don't want to enter the password create an RSA key.\n\nBring Vagrant Up With\n```\n./setup-vagrant\n```\n\nRun\n```\n./test\n```\nAnd follow the instructions on screen.\n\n# Manual Testing With Vagrant\nYou can start a vagrant VM to test the included payload with:\n```\nvagrant up\n```\n\nTo get the IP of the VM type:\n```\nvagrant ssh-config\n```\n\nWhen you clone the repository as instructed above you will be prompted for a password.\nUse the password \"vagrant\" to clone the repository.\nPush the example (put the hello.pp into the manifests directory) to the repository to have it run by puppet on the VM system.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhirsch%2Fprovisioner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhhirsch%2Fprovisioner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhhirsch%2Fprovisioner/lists"}