{"id":18841515,"url":"https://github.com/subvisual/subvisual-puppet","last_synced_at":"2026-01-30T11:30:16.857Z","repository":{"id":11887925,"uuid":"14449912","full_name":"subvisual/subvisual-puppet","owner":"subvisual","description":"GB Puppet module","archived":false,"fork":false,"pushed_at":"2019-01-07T22:21:19.000Z","size":73,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-12-30T10:43:25.776Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Puppet","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/subvisual.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}},"created_at":"2013-11-16T16:11:21.000Z","updated_at":"2019-01-07T22:21:21.000Z","dependencies_parsed_at":"2022-09-23T02:55:12.655Z","dependency_job_id":null,"html_url":"https://github.com/subvisual/subvisual-puppet","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subvisual%2Fsubvisual-puppet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subvisual%2Fsubvisual-puppet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subvisual%2Fsubvisual-puppet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/subvisual%2Fsubvisual-puppet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/subvisual","download_url":"https://codeload.github.com/subvisual/subvisual-puppet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239780122,"owners_count":19695734,"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":[],"created_at":"2024-11-08T02:51:38.527Z","updated_at":"2026-01-30T11:30:16.822Z","avatar_url":"https://github.com/subvisual.png","language":"Puppet","readme":"# Subvisual Puppet\n\nA Puppet module and a few helper scripts to set up web servers\n\n# Puppet module\n\nThe module contains common patterns to be used in puppet manifests accross different web applications. It is available on [puppet forge](https://forge.puppetlabs.com/groupbuddies/gb).\n\n# Provisioning a machine\n\n## 1. Base provisioning\n\nFor the default base setup for a web server, the `ubuntu` helper script can be\napplied. To use it, SSH into a newly created machine, and run this command:\n\n```bash\ncurl -s https://raw.githubusercontent.com/subvisual/subvisual-puppet/master/setup/ubuntu \u003e install\nchmod +x install\n./install\n```\n\nThis will:\n\n* install some base packages (git, puppet)\n* create a `deploy` user. You will be prompted for a password at the end\n* Add all of [Subvisual public keys](https://github.com/subvisual/public-keys) to the `deploy` user\n* Adds [Subvisual dotfiles](https://github.com/subvisual/dotfiles) to the `deploy` user using [rcm](https://github.com/thoughtbot/rcm)\n* ensure `/apps` (where all web apps will go) belongs to the `deploy` user\n* enable Upstart session jobs\n* install nginx\n\n## 2. App provisioning\n\nAt this step, it is assumed the machine is ready with the setup described in [base provisioning](#1-base-provisioning).\n\nThis will be app-specific. For each app, a puppet manifest and a hiera data file is needed. The later one is used to store sensitive data (and thus should not be commited to git). Here's an example for an app that uses ruby 2.1.5 and a PostgreSQL database, and is deployed with Capistrano:\n\n```puppet\n# manifest.pp\n$data = hiera('common')\ngb::ruby { 'ruby-2.1.5': }\n\ngb::postgresql { 'app_name':\n  password =\u003e $data[app_name][db_password],\n}\n\ngb::capistrano { 'app_name': }\n\ngb::nginx_conf { 'app_name':\n  path =\u003e 'config/nginx.production.conf',\n}\n```\n\n```yaml\n# common.yaml\n---\ncommon:\n  app_name:\n    db_password: \"a-random-p4ssw0rd\"\n```\n\nThe `setup/app` helper script  assists with getting these files on the server and provisioning it. No SSH needed at this stage:\n\n```bash\ncurl -s https://raw.githubusercontent.com/subvisual/subvisual-puppet/master/setup/app \u003e install-app\nchmod +x install-app\n./install-app\n```\n\nThe script will prompt you for a few things:\n\n* The hostname or IP address of the server\n* The SSH port to use (defaults to 22)\n* path to the manifest\n* path to the hiera data\n\nThe script will upload both files to the server and apply the puppet manifest.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubvisual%2Fsubvisual-puppet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsubvisual%2Fsubvisual-puppet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsubvisual%2Fsubvisual-puppet/lists"}