{"action":"created","issue":{"url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/9","repository_url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss","labels_url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/9/comments","events_url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/9/events","html_url":"https://github.com/YaleUniversity/packer-provisioner-goss/issues/9","id":313529537,"number":9,"title":"Feature request - set up goss in server-mode","user":{"login":"petemounce","id":69720,"avatar_url":"https://avatars2.githubusercontent.com/u/69720?v=4","gravatar_id":"","url":"https://api.github.com/users/petemounce","html_url":"https://github.com/petemounce","followers_url":"https://api.github.com/users/petemounce/followers","following_url":"https://api.github.com/users/petemounce/following{/other_user}","gists_url":"https://api.github.com/users/petemounce/gists{/gist_id}","starred_url":"https://api.github.com/users/petemounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petemounce/subscriptions","organizations_url":"https://api.github.com/users/petemounce/orgs","repos_url":"https://api.github.com/users/petemounce/repos","events_url":"https://api.github.com/users/petemounce/events{/privacy}","received_events_url":"https://api.github.com/users/petemounce/received_events","type":"User","site_admin":false},"labels":[{"id":607570683,"url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-04-12T00:02:44Z","updated_at":"2018-04-17T17:11:22Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"It would be really useful if the provisioner had a mode whereby it set up goss to run in server mode to be used as a health-check.\r\n\r\nParameters that I think would be necessary:\r\n* output format (default to JSON?)\r\n* path (built-in default is `/healthz`)\r\n* the usual networking bits like port and bind address\r\n\r\nThis would be a bit more involved, since it would probably also need to create a service definition file, which on modern ubuntu would be a systemd unit file, on macOS a LaunchAgent, and so on.\r\n\r\nIs that something you'd be interested in a PR for?"},"comment":{"url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/comments/382070872","html_url":"https://github.com/YaleUniversity/packer-provisioner-goss/issues/9#issuecomment-382070872","issue_url":"https://api.github.com/repos/YaleUniversity/packer-provisioner-goss/issues/9","id":382070872,"user":{"login":"petemounce","id":69720,"avatar_url":"https://avatars2.githubusercontent.com/u/69720?v=4","gravatar_id":"","url":"https://api.github.com/users/petemounce","html_url":"https://github.com/petemounce","followers_url":"https://api.github.com/users/petemounce/followers","following_url":"https://api.github.com/users/petemounce/following{/other_user}","gists_url":"https://api.github.com/users/petemounce/gists{/gist_id}","starred_url":"https://api.github.com/users/petemounce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petemounce/subscriptions","organizations_url":"https://api.github.com/users/petemounce/orgs","repos_url":"https://api.github.com/users/petemounce/repos","events_url":"https://api.github.com/users/petemounce/events{/privacy}","received_events_url":"https://api.github.com/users/petemounce/received_events","type":"User","site_admin":false},"created_at":"2018-04-17T17:11:22Z","updated_at":"2018-04-17T17:11:22Z","author_association":"CONTRIBUTOR","body":"So, I'm building [buildkite agents](https://buildkite.com/docs/agent) via packer, bash and ansible.\r\n\r\nFor local iteration, I'm using the https://github.com/indusbox/goss-ansible role to download and install `goss` to the system (`/usr/local/bin`).\r\n\r\nDuring packer builds, I'm using your module to run my tests (so I get 2 test runs, since I haven't bothered making the ansible goss run conditional on \"is-packer\").\r\n\r\nWe've had a myriad of problems with people remoting onto build agents in the past to debug builds, then not cleaning up after themselves. Shifting to buildkite is new for us, and so we're going to be treating the infrastructure much more like cattle.\r\n\r\nThe idea of setting up goss as a health check, then having a load-balancer continuously ping it, and trigger the node to be burned if it fails too many health checks in a row is a really compelling idea.\r\n\r\nI think, that said, it's a problem better solved by config management.\r\n\r\n_That_ said, since I'm installing goss via config management, it would be convenient to be able to tell the plugin to use the `goss` that I install, rather than going out to fetch it. I had a look and didn't see that that was currently possible; is it?"}}
{"actor":{"display_login":"petemounce"}}