{"action":"created","comment":{"url":"https://api.github.com/repos/coreos/docs/pulls/comments/25300267","id":25300267,"diff_hunk":"@@ -11,10 +11,28 @@ weight: 10\n These instructions will walk you through running a single CoreOS node. This guide assumes:\n \n * You have an account at [Vultr.com](https://www.vultr.com).\n-* The location of your iPXE script (referenced later in the guide) is located at ```http://example.com/script.txt```\n * You have a public + private key combination generated. Here's a helpful guide if you need to generate these keys: [How to set up SSH keys](https://help.github.com/articles/generating-ssh-keys).\n \n-The simplest option to boot up CoreOS is to load a script that contains the series of commands you'd otherwise need to manually type at the command line. This script needs to be publicly accessible (host this file on your own server). Save this script as a text file (.txt extension).\n+The simplest option to boot up CoreOS is to select the \"CoreOS Stable\" operating system from Vultr's default offerings. However, most deployments require a custom `cloud-config`, which can only be achieved in Vultr with an iPXE script. The remainder of this article describes this process.\n+\n+## Cloud-Config\n+\n+First, you'll need to make two files available at public URL's -- your `cloud-config` file and a shell script which you need to create:\n+\n+```sh\n+URL=\"http://example.com/cloud-config.yaml\"\n+\n+cat << EOF > ./cloud-config-bootstrap.sh\\n","path":"running-coreos/cloud-providers/vultr/index.md","position":17,"original_position":17,"commit_id":"7b6cf3048404de4bedf806b8afbc84fe51d15bb9","original_commit_id":"7b6cf3048404de4bedf806b8afbc84fe51d15bb9","user":{"login":"ryneeverett","id":3280280,"avatar_url":"https://avatars.githubusercontent.com/u/3280280?v=3","gravatar_id":"","url":"https://api.github.com/users/ryneeverett","html_url":"https://github.com/ryneeverett","followers_url":"https://api.github.com/users/ryneeverett/followers","following_url":"https://api.github.com/users/ryneeverett/following{/other_user}","gists_url":"https://api.github.com/users/ryneeverett/gists{/gist_id}","starred_url":"https://api.github.com/users/ryneeverett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryneeverett/subscriptions","organizations_url":"https://api.github.com/users/ryneeverett/orgs","repos_url":"https://api.github.com/users/ryneeverett/repos","events_url":"https://api.github.com/users/ryneeverett/events{/privacy}","received_events_url":"https://api.github.com/users/ryneeverett/received_events","type":"User","site_admin":false},"body":"Ah, I see. So something like:\r\n\r\n```sh\r\n#!/bin/bash\r\nIFS='' read -r -d '' CLOUD_CONFIG <<'EOF'\r\n# Your Cloud Config:\r\nssh_authorized_keys:\r\n  - ssh-rsa ...\r\nEOF\r\n\r\nsudo coreos-install -d /dev/vda -c $CLOUD_CONFIG\r\nsudo reboot\r\n```\r\n\r\nor \r\n\r\n```sh\r\n#!/bin/bash\r\ncat << EOF > cloud-config.yaml\r\n# Your Cloud Config:\r\nssh_authorized_keys:\r\n  - ssh-rsa ...\r\nEOF\r\n\r\nsudo coreos-install -d /dev/vda -c cloud-config.yaml\r\nsudo reboot\r\n```\r\n\r\nFor some reason whenever I try these I get thrown into a infinite reboot cycle.","created_at":"2015-02-24T22:32:50Z","updated_at":"2015-02-24T22:32:50Z","html_url":"https://github.com/coreos/docs/pull/441#discussion_r25300267","pull_request_url":"https://api.github.com/repos/coreos/docs/pulls/441","_links":{"self":{"href":"https://api.github.com/repos/coreos/docs/pulls/comments/25300267"},"html":{"href":"https://github.com/coreos/docs/pull/441#discussion_r25300267"},"pull_request":{"href":"https://api.github.com/repos/coreos/docs/pulls/441"}}},"pull_request":{"url":"https://api.github.com/repos/coreos/docs/pulls/441","id":29865276,"html_url":"https://github.com/coreos/docs/pull/441","diff_url":"https://github.com/coreos/docs/pull/441.diff","patch_url":"https://github.com/coreos/docs/pull/441.patch","issue_url":"https://api.github.com/repos/coreos/docs/issues/441","number":441,"state":"open","locked":false,"title":"Update Vultr documentation.","user":{"login":"ryneeverett","id":3280280,"avatar_url":"https://avatars.githubusercontent.com/u/3280280?v=3","gravatar_id":"","url":"https://api.github.com/users/ryneeverett","html_url":"https://github.com/ryneeverett","followers_url":"https://api.github.com/users/ryneeverett/followers","following_url":"https://api.github.com/users/ryneeverett/following{/other_user}","gists_url":"https://api.github.com/users/ryneeverett/gists{/gist_id}","starred_url":"https://api.github.com/users/ryneeverett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryneeverett/subscriptions","organizations_url":"https://api.github.com/users/ryneeverett/orgs","repos_url":"https://api.github.com/users/ryneeverett/repos","events_url":"https://api.github.com/users/ryneeverett/events{/privacy}","received_events_url":"https://api.github.com/users/ryneeverett/received_events","type":"User","site_admin":false},"body":"1. **Install to disk rather than RAM.** The Vultr page currently explains how to install to RAM, which I believe is unique among the \"cloud provider\" pages. I can't imagine why one would do this on a cloud server. I can only assume it was done that way because it was the simplest possible installation at the time, but Vultr now provides their own CoreOS image so that is no longer the case.\r\n\r\n2. **Use custom `cloud-config`.** Now that Vultr provides a CoreOS image, the only use case for a custom iso is to provide a custom `cloud-config`.\r\n\r\n3. **Use Vultr's \"Startup Scripts\" feature to provide the iPXE.** This feature has been added since the docs and makes the process a lot simpler.\r\n\r\n4. **Moved \"Cloud Config\" above \"Choosing a Channel\".** You need to know the url to your `cloud-config` before you can write the pxe file.\r\n\r\n5. **SSH public key in `cloud-config` rather than pxe.** I actually am not sure if this is necessary, but it works and strikes me as more appropriate.\r\n\r\n6. **Remove screenshot.** Screenshot is quite dated. Neither the CoreOS \"Operating System\" option or the \"Startup Scripts\" features existed when it was taken. I'd be willing to add an updated screenshot if eye candy is mandatory.\r\n\r\nI believe all the other changes are self-explanatory updates.\r\n\r\nI think this should close #341.","created_at":"2015-02-24T02:05:03Z","updated_at":"2015-02-24T22:32:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3579afe2c114392147142cd4794eda3bba4b3e7e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/coreos/docs/pulls/441/commits","review_comments_url":"https://api.github.com/repos/coreos/docs/pulls/441/comments","review_comment_url":"https://api.github.com/repos/coreos/docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/coreos/docs/issues/441/comments","statuses_url":"https://api.github.com/repos/coreos/docs/statuses/7b6cf3048404de4bedf806b8afbc84fe51d15bb9","head":{"label":"ryneeverett:vultr-update","ref":"vultr-update","sha":"7b6cf3048404de4bedf806b8afbc84fe51d15bb9","user":{"login":"ryneeverett","id":3280280,"avatar_url":"https://avatars.githubusercontent.com/u/3280280?v=3","gravatar_id":"","url":"https://api.github.com/users/ryneeverett","html_url":"https://github.com/ryneeverett","followers_url":"https://api.github.com/users/ryneeverett/followers","following_url":"https://api.github.com/users/ryneeverett/following{/other_user}","gists_url":"https://api.github.com/users/ryneeverett/gists{/gist_id}","starred_url":"https://api.github.com/users/ryneeverett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryneeverett/subscriptions","organizations_url":"https://api.github.com/users/ryneeverett/orgs","repos_url":"https://api.github.com/users/ryneeverett/repos","events_url":"https://api.github.com/users/ryneeverett/events{/privacy}","received_events_url":"https://api.github.com/users/ryneeverett/received_events","type":"User","site_admin":false},"repo":{"id":31239456,"name":"docs","full_name":"ryneeverett/docs","owner":{"login":"ryneeverett","id":3280280,"avatar_url":"https://avatars.githubusercontent.com/u/3280280?v=3","gravatar_id":"","url":"https://api.github.com/users/ryneeverett","html_url":"https://github.com/ryneeverett","followers_url":"https://api.github.com/users/ryneeverett/followers","following_url":"https://api.github.com/users/ryneeverett/following{/other_user}","gists_url":"https://api.github.com/users/ryneeverett/gists{/gist_id}","starred_url":"https://api.github.com/users/ryneeverett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryneeverett/subscriptions","organizations_url":"https://api.github.com/users/ryneeverett/orgs","repos_url":"https://api.github.com/users/ryneeverett/repos","events_url":"https://api.github.com/users/ryneeverett/events{/privacy}","received_events_url":"https://api.github.com/users/ryneeverett/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ryneeverett/docs","description":"Documentation for CoreOS in markdown","fork":true,"url":"https://api.github.com/repos/ryneeverett/docs","forks_url":"https://api.github.com/repos/ryneeverett/docs/forks","keys_url":"https://api.github.com/repos/ryneeverett/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ryneeverett/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ryneeverett/docs/teams","hooks_url":"https://api.github.com/repos/ryneeverett/docs/hooks","issue_events_url":"https://api.github.com/repos/ryneeverett/docs/issues/events{/number}","events_url":"https://api.github.com/repos/ryneeverett/docs/events","assignees_url":"https://api.github.com/repos/ryneeverett/docs/assignees{/user}","branches_url":"https://api.github.com/repos/ryneeverett/docs/branches{/branch}","tags_url":"https://api.github.com/repos/ryneeverett/docs/tags","blobs_url":"https://api.github.com/repos/ryneeverett/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ryneeverett/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ryneeverett/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ryneeverett/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ryneeverett/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/ryneeverett/docs/languages","stargazers_url":"https://api.github.com/repos/ryneeverett/docs/stargazers","contributors_url":"https://api.github.com/repos/ryneeverett/docs/contributors","subscribers_url":"https://api.github.com/repos/ryneeverett/docs/subscribers","subscription_url":"https://api.github.com/repos/ryneeverett/docs/subscription","commits_url":"https://api.github.com/repos/ryneeverett/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ryneeverett/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ryneeverett/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ryneeverett/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ryneeverett/docs/contents/{+path}","compare_url":"https://api.github.com/repos/ryneeverett/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ryneeverett/docs/merges","archive_url":"https://api.github.com/repos/ryneeverett/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ryneeverett/docs/downloads","issues_url":"https://api.github.com/repos/ryneeverett/docs/issues{/number}","pulls_url":"https://api.github.com/repos/ryneeverett/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/ryneeverett/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/ryneeverett/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ryneeverett/docs/labels{/name}","releases_url":"https://api.github.com/repos/ryneeverett/docs/releases{/id}","created_at":"2015-02-24T01:26:23Z","updated_at":"2015-02-24T01:26:24Z","pushed_at":"2015-02-24T19:52:38Z","git_url":"git://github.com/ryneeverett/docs.git","ssh_url":"git@github.com:ryneeverett/docs.git","clone_url":"https://github.com/ryneeverett/docs.git","svn_url":"https://github.com/ryneeverett/docs","homepage":"http://coreos.com/docs","size":6028,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"coreos:master","ref":"master","sha":"458d045f39d3709f561e102834fbfa73e6359d07","user":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"repo":{"id":11597120,"name":"docs","full_name":"coreos/docs","owner":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/coreos/docs","description":"Documentation for CoreOS in markdown","fork":false,"url":"https://api.github.com/repos/coreos/docs","forks_url":"https://api.github.com/repos/coreos/docs/forks","keys_url":"https://api.github.com/repos/coreos/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coreos/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coreos/docs/teams","hooks_url":"https://api.github.com/repos/coreos/docs/hooks","issue_events_url":"https://api.github.com/repos/coreos/docs/issues/events{/number}","events_url":"https://api.github.com/repos/coreos/docs/events","assignees_url":"https://api.github.com/repos/coreos/docs/assignees{/user}","branches_url":"https://api.github.com/repos/coreos/docs/branches{/branch}","tags_url":"https://api.github.com/repos/coreos/docs/tags","blobs_url":"https://api.github.com/repos/coreos/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coreos/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coreos/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/coreos/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coreos/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/coreos/docs/languages","stargazers_url":"https://api.github.com/repos/coreos/docs/stargazers","contributors_url":"https://api.github.com/repos/coreos/docs/contributors","subscribers_url":"https://api.github.com/repos/coreos/docs/subscribers","subscription_url":"https://api.github.com/repos/coreos/docs/subscription","commits_url":"https://api.github.com/repos/coreos/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/coreos/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/coreos/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/coreos/docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/coreos/docs/contents/{+path}","compare_url":"https://api.github.com/repos/coreos/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coreos/docs/merges","archive_url":"https://api.github.com/repos/coreos/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coreos/docs/downloads","issues_url":"https://api.github.com/repos/coreos/docs/issues{/number}","pulls_url":"https://api.github.com/repos/coreos/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/coreos/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/coreos/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coreos/docs/labels{/name}","releases_url":"https://api.github.com/repos/coreos/docs/releases{/id}","created_at":"2013-07-23T02:02:24Z","updated_at":"2015-02-24T18:49:53Z","pushed_at":"2015-02-24T18:49:53Z","git_url":"git://github.com/coreos/docs.git","ssh_url":"git@github.com:coreos/docs.git","clone_url":"https://github.com/coreos/docs.git","svn_url":"https://github.com/coreos/docs","homepage":"http://coreos.com/docs","size":6028,"stargazers_count":509,"watchers_count":509,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":273,"mirror_url":null,"open_issues_count":30,"forks":273,"open_issues":30,"watchers":509,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coreos/docs/pulls/441"},"html":{"href":"https://github.com/coreos/docs/pull/441"},"issue":{"href":"https://api.github.com/repos/coreos/docs/issues/441"},"comments":{"href":"https://api.github.com/repos/coreos/docs/issues/441/comments"},"review_comments":{"href":"https://api.github.com/repos/coreos/docs/pulls/441/comments"},"review_comment":{"href":"https://api.github.com/repos/coreos/docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/coreos/docs/pulls/441/commits"},"statuses":{"href":"https://api.github.com/repos/coreos/docs/statuses/7b6cf3048404de4bedf806b8afbc84fe51d15bb9"}}}}