{"action":"created","issue":{"url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/68","repository_url":"https://api.github.com/repos/AmericanRedCross/posm-build","labels_url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/68/labels{/name}","comments_url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/68/comments","events_url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/68/events","html_url":"https://github.com/AmericanRedCross/posm-build/pull/68","id":174975182,"number":68,"title":"[WiP] Ubuntu Live-based installer","user":{"login":"mojodna","id":45,"avatar_url":"https://avatars.githubusercontent.com/u/45?v=3","gravatar_id":"","url":"https://api.github.com/users/mojodna","html_url":"https://github.com/mojodna","followers_url":"https://api.github.com/users/mojodna/followers","following_url":"https://api.github.com/users/mojodna/following{/other_user}","gists_url":"https://api.github.com/users/mojodna/gists{/gist_id}","starred_url":"https://api.github.com/users/mojodna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojodna/subscriptions","organizations_url":"https://api.github.com/users/mojodna/orgs","repos_url":"https://api.github.com/users/mojodna/repos","events_url":"https://api.github.com/users/mojodna/events{/privacy}","received_events_url":"https://api.github.com/users/mojodna/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-09-04T23:21:49Z","updated_at":"2016-10-07T17:46:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/AmericanRedCross/posm-build/pulls/68","html_url":"https://github.com/AmericanRedCross/posm-build/pull/68","diff_url":"https://github.com/AmericanRedCross/posm-build/pull/68.diff","patch_url":"https://github.com/AmericanRedCross/posm-build/pull/68.patch"},"body":"Uses the [Ubuntu Live CD/USB process](https://help.ubuntu.com/community/LiveCDCustomizationFromScratch) ([casper](http://manpages.ubuntu.com/manpages/wily/man7/casper.7.html)) to create an installer that runs under a GUI and copies a pre-installed set of packages + files to a target system.\r\n\r\n## Benefits over the previous installer\r\n\r\n* No need for USB workarounds on fresh systems (AmericanRedCross/posm#116)\r\n* Installs quickly (< 10 minutes)\r\n* Doesn't require an internet connection\r\n* UEFI-only support (when using a GPT-partitioned, FAT32-formatted USB stick)\r\n* Can be distributed as an ISO (for Legacy BIOS support + VMs)\r\n* Consistently installs a known set of dependencies / versions, simplifying validation (install once, ensure that everything started + works correctly = distributable image will have the same characteristics)\r\n* More CI-friendly (?, depends if LXD is installable in CI environments)\r\n* Image can be created in a controlled environment with an HTTP cache / fast internet\r\n\r\n## Downsides over the previous installer\r\n\r\n* Less control over disk partitioning (new scheme is single `/` partition)\r\n* Larger initial download (3.6GB)\r\n* Not suited for cloud hosts (yet)\r\n* Unclear whether it's PXE bootable (@jflemer-ndp was the only one who may have been taking advantage of this)\r\n\r\n## Why LXD?\r\n\r\nIf you read the [LiveCDCustomizationFromScratch](https://help.ubuntu.com/community/LiveCDCustomizationFromScratch) wiki, you'll see that `chroot`s are used extensively. `initctl` is diverted and [`policy-rc.d`](https://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt) is used to prevent services from starting during installation. For the base system (Ubuntu), this is desirable.\r\n\r\nHowever, POSM needs to access a running PostgreSQL instance in order to initialize OSM (and MySQL for Field Papers, for now). It's possible to do this in a `chroot`, but with the potential for port and device conflicts. Instead, using something that uses `cgroups` (e.g. Docker or LXC) makes it feasible.\r\n\r\nLXD is an Ubuntu (etc.) wrapper around LXC that makes it behave like a VM host, even allowing containers to be unprivileged (so the full gamut of users present in a container map to the user who invoked it). Guests are persistent, so commands can be executed as though they were targeting a `chroot`ed environment while being able to access services that were started (after removing the `initctl` diversion).\r\n\r\n## Can I try it now?\r\n\r\nbeta 3 (externally tested by @danbjoseph): http://posm.s3.amazonaws.com/temp/posm-installer-beta3.zip"},"comment":{"url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/comments/252316289","html_url":"https://github.com/AmericanRedCross/posm-build/pull/68#issuecomment-252316289","issue_url":"https://api.github.com/repos/AmericanRedCross/posm-build/issues/68","id":252316289,"user":{"login":"mojodna","id":45,"avatar_url":"https://avatars.githubusercontent.com/u/45?v=3","gravatar_id":"","url":"https://api.github.com/users/mojodna","html_url":"https://github.com/mojodna","followers_url":"https://api.github.com/users/mojodna/followers","following_url":"https://api.github.com/users/mojodna/following{/other_user}","gists_url":"https://api.github.com/users/mojodna/gists{/gist_id}","starred_url":"https://api.github.com/users/mojodna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojodna/subscriptions","organizations_url":"https://api.github.com/users/mojodna/orgs","repos_url":"https://api.github.com/users/mojodna/repos","events_url":"https://api.github.com/users/mojodna/events{/privacy}","received_events_url":"https://api.github.com/users/mojodna/received_events","type":"User","site_admin":false},"created_at":"2016-10-07T17:46:15Z","updated_at":"2016-10-07T17:46:15Z","body":"```\r\naddress=/posm.io/172.16.1.1\r\n```\r\n\r\nis actually a wildcard for `*.posm.io`. I haven't seen a way to do non-wildcard resolution other than re-enabling use of `/etc/hosts` by commenting out `no-hosts` and ensuring the `/etc/hosts` contains a routable IP for `posm.io` and `posm` (and only that)."}}
{"actor":{"display_login":"mojodna"}}