{"action":"created","comment":{"url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/comments/31737917","id":31737917,"diff_hunk":"@@ -0,0 +1,231 @@\n+.. _tutorial-moving-a-data-volume:\n+\n+==============================\n+Tutorial: Moving a Data Volume\n+==============================\n+\n+In this tutorial (30 minutes)\n+-----------------------------\n+\n+You will use Flocker to migrate a Docker container with its data volume from one host to another.\n+The container you move will be part of a two-container application, the other container will not move and the two will remain connected even when they are on different hosts.\n+\n+To begin the tutorial you will first install the Flocker client on your local machine, then install Flocker onto two hosts.\n+You will then be ready to use Flocker to migrate a Docker container with a volume attached from one host to the other.\n+\n+.. note:: This tutorial takes roughly 30 minutes, but because there are a few things to download, times might vary depending on the speed of your connection.\n+\n+You will need\n+-------------\n+\n+1. Somewhere to install the Flocker client.\n+Make sure you have **one** of the following on your machine:\n+\n+- OS X with `Homebrew <http://brew.sh/>`_ installed.\n+- Ubuntu 14.04.\n+\n+2. Two hosts for two instances of Flocker.\n+The options are:\n+\n+- Two Virtual Machines (VMs) on your local machine.\n+  For this tutorial, you are supplied with Vagrant images to create the tutorial environment on VMs using VirtualBox, so you must have `Vagrant <https://www.vagrantup.com/>`_ and `VirtualBox <https://www.virtualbox.org/>`_ installed.\n+- AWS or Rackspace (you will need an account with root access).\n+- Physical hosts with a supported operating system.\n+- Any combination of the above.\n+\n+.. note:: If you choose to use VMs on your local machine, you’ll need at least 4GB RAM.\n+\n+Contents\n+--------\n+\n+.. contents:: \n+\t:local:\n+\t:backlinks: none\n+\t:depth: 2\n+\n+Overview\n+^^^^^^^^\n+\n+You will be controlling your Flocker cluster via the CLI you've installed locally.\n+The following diagram illustrates the initial server-side Flocker setup that you will control via the CLI.\n+\n+.. image:: images/flocker-tutorial-initial-setup.svg\n+   :width: 60 %\n+   :alt: In the initial server-side Flocker setup there are two servers, one of which has two Docker containers running; one container is a running a web application, the other has a Redis database with a volume.\n+   :align: center\n+\n+The following diagram illustrates how the server-side Flocker setup will be configured at the end of the tutorial:\n+\n+.. image:: images/flocker-tutorial-final-setup.svg\n+   :width: 60 %\n+   :alt: Following the completion of this tutorial the server-side Flocker setup will be configured with the web application still running within a container on the first server, while the Redis server with a volume is running on the second server.\n+   :align: center\n+\n+Flocker manages the data migration and the link between the two containers.\n+\n+.. To find out more about how Flocker manages migration of containers with volumes, see *add link here*\n+\n+Step 1: Installing the Flocker client\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+The Flocker client runs locally on your machine, and will control the two instances of Flocker located on the hosts.\n+To install the Flocker client, run the following in your terminal:\n+\n+OS X\n+****\n+.. task:: test_homebrew flocker-|latest-installable|\n+   :prompt: you@laptop:~$\n+\n+Ubuntu 14.04\n+************\n+.. task:: install_cli ubuntu-14.04\n+   :prompt: you@laptop:~$\n+\n+To test your installation, run the following to check that you have the Flocker client installed correctly:\n+\n+.. prompt:: bash [you@laptop:~$]\n+\n+   flocker-deploy --version\n+\n+Successful installation will display the version of Flocker.\n+\n+Step 2: Installing Flocker on your hosts\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+Option A: Installing Flocker on local VMs\n+*****************************************\n+\n+.. note:: You must have `Vagrant <https://www.vagrantup.com/>`_ and `VirtualBox <https://www.virtualbox.org/>`_  installed to create the VMs and start the containers for this tutorial.\n+\n+In Step 1 you installed the Flocker client on your local machine.\n+For the next step in this tutorial you now need two instances of Flocker, each on a separate host.\n+Flocker manages the links, ports, and volumes associated with Docker containers and can move them around after deployment.\n+To install Flocker (plus dependencies) on the hosts, run the following command and Vagrant will create the environments you need:\n+\n+.. version-code-block:: console\n+\n+   you@laptop:~$ curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/Vagrantfile && \\\n+   curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/cluster.crt && \\\n+   curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/user.crt && \\\n+   curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/user.key && \\\n+   vagrant up && \\\n+   [ -e \"${SSH_AUTH_SOCK}\" ] || eval $(ssh-agent) && \\\n+   ssh-add ~/.vagrant.d/insecure_private_key\n+\n+Option B: Installing Flocker on AWS or Rackspace\n+************************************************\n+\n+The two instances of Flocker each run on a separate host.\n+Flocker manages the links, ports, and volumes associated with Docker containers and can move them around after deployment.\n+To install Flocker (plus dependencies), follow the links to the direct instructions:\n+\n+- :ref:`AWS install instructions <aws-install>`\n+- :ref:`Rackspace install instructions <rackspace-install>`\n+\n+Step 3: Deploying an app on the first host\n+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n+\n+You will now have the Flocker client installed on your local machine and two instances of Flocker, each on a different host.\n+Now you will create two Docker containers on one of the hosts.\n+One is a Python web application and the other is Redis server, which stores its data on a volume.\n+\n+Download the first 2 .yml files that we have provided:\n+\n+.. version-code-block:: console\n+\n+\tyou@laptop:~$ curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/docker-compose.yml\n+\tyou@laptop:~$ curl -O https://docs.clusterhq.com/en/|latest-installable|/_downloads/deployment-node1.yml\n+\n+.. note:: There are 3 .yml files to download. These contain the application and deployment configuration. You can edit these files if you need to change the IP addresses to match your hosts'.","path":"docs/using/tutorial/movingvolume.rst","position":138,"original_position":138,"commit_id":"b60f722439ee6a8065a7298eb0e5f80c108c452a","original_commit_id":"b60f722439ee6a8065a7298eb0e5f80c108c452a","user":{"login":"adamtheturtle","id":797801,"avatar_url":"https://avatars.githubusercontent.com/u/797801?v=3","gravatar_id":"","url":"https://api.github.com/users/adamtheturtle","html_url":"https://github.com/adamtheturtle","followers_url":"https://api.github.com/users/adamtheturtle/followers","following_url":"https://api.github.com/users/adamtheturtle/following{/other_user}","gists_url":"https://api.github.com/users/adamtheturtle/gists{/gist_id}","starred_url":"https://api.github.com/users/adamtheturtle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamtheturtle/subscriptions","organizations_url":"https://api.github.com/users/adamtheturtle/orgs","repos_url":"https://api.github.com/users/adamtheturtle/repos","events_url":"https://api.github.com/users/adamtheturtle/events{/privacy}","received_events_url":"https://api.github.com/users/adamtheturtle/received_events","type":"User","site_admin":false},"body":"This extra complexity created by allowing multiple node types is just not worth it in my opinion. It makes a quick tutorial too complex. I would *really* like this to be user tested before merging. We've made the mistake before of adding instructions which haven't been through user testing. I understand that this guide is a product of the user testing for the GSG on Vagrant, but not with custom hosts, right? My intuition is that this is a really hard thing to do and we should wait until we have a provisioning tool or at least positive user testing results before we add this option. At the very least I recommend you try to do it yourself (and time it?).","created_at":"2015-06-04T16:26:40Z","updated_at":"2015-06-04T16:26:40Z","html_url":"https://github.com/ClusterHQ/flocker/pull/1506#discussion_r31737917","pull_request_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506","_links":{"self":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/comments/31737917"},"html":{"href":"https://github.com/ClusterHQ/flocker/pull/1506#discussion_r31737917"},"pull_request":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506"}}},"pull_request":{"url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506","id":36948165,"html_url":"https://github.com/ClusterHQ/flocker/pull/1506","diff_url":"https://github.com/ClusterHQ/flocker/pull/1506.diff","patch_url":"https://github.com/ClusterHQ/flocker/pull/1506.patch","issue_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/1506","number":1506,"state":"open","locked":false,"title":"[FLOC-1920] Remove the original GSG and replace with Tutorial in docs","user":{"login":"davidoliverSP2","id":12032446,"avatar_url":"https://avatars.githubusercontent.com/u/12032446?v=3","gravatar_id":"","url":"https://api.github.com/users/davidoliverSP2","html_url":"https://github.com/davidoliverSP2","followers_url":"https://api.github.com/users/davidoliverSP2/followers","following_url":"https://api.github.com/users/davidoliverSP2/following{/other_user}","gists_url":"https://api.github.com/users/davidoliverSP2/gists{/gist_id}","starred_url":"https://api.github.com/users/davidoliverSP2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidoliverSP2/subscriptions","organizations_url":"https://api.github.com/users/davidoliverSP2/orgs","repos_url":"https://api.github.com/users/davidoliverSP2/repos","events_url":"https://api.github.com/users/davidoliverSP2/events{/privacy}","received_events_url":"https://api.github.com/users/davidoliverSP2/received_events","type":"User","site_admin":false},"body":"This branch removes the old GSG, and creates a new file in the Tutorial section of the User Flocker docs.\r\n\r\nAlready reviewed prior to the PR by @dwgebler and @ferrantim, but this has gone through lots of revisions, so please let me know if there are any issues.","created_at":"2015-06-04T15:45:31Z","updated_at":"2015-06-04T16:26:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"759f8dd5c62381d4e1d339dffeb797c8814f6250","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506/commits","review_comments_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506/comments","review_comment_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/1506/comments","statuses_url":"https://api.github.com/repos/ClusterHQ/flocker/statuses/b60f722439ee6a8065a7298eb0e5f80c108c452a","head":{"label":"ClusterHQ:newdoc-tryflocker-FLOC-1920","ref":"newdoc-tryflocker-FLOC-1920","sha":"b60f722439ee6a8065a7298eb0e5f80c108c452a","user":{"login":"ClusterHQ","id":7913449,"avatar_url":"https://avatars.githubusercontent.com/u/7913449?v=3","gravatar_id":"","url":"https://api.github.com/users/ClusterHQ","html_url":"https://github.com/ClusterHQ","followers_url":"https://api.github.com/users/ClusterHQ/followers","following_url":"https://api.github.com/users/ClusterHQ/following{/other_user}","gists_url":"https://api.github.com/users/ClusterHQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ClusterHQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClusterHQ/subscriptions","organizations_url":"https://api.github.com/users/ClusterHQ/orgs","repos_url":"https://api.github.com/users/ClusterHQ/repos","events_url":"https://api.github.com/users/ClusterHQ/events{/privacy}","received_events_url":"https://api.github.com/users/ClusterHQ/received_events","type":"Organization","site_admin":false},"repo":{"id":19248542,"name":"flocker","full_name":"ClusterHQ/flocker","owner":{"login":"ClusterHQ","id":7913449,"avatar_url":"https://avatars.githubusercontent.com/u/7913449?v=3","gravatar_id":"","url":"https://api.github.com/users/ClusterHQ","html_url":"https://github.com/ClusterHQ","followers_url":"https://api.github.com/users/ClusterHQ/followers","following_url":"https://api.github.com/users/ClusterHQ/following{/other_user}","gists_url":"https://api.github.com/users/ClusterHQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ClusterHQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClusterHQ/subscriptions","organizations_url":"https://api.github.com/users/ClusterHQ/orgs","repos_url":"https://api.github.com/users/ClusterHQ/repos","events_url":"https://api.github.com/users/ClusterHQ/events{/privacy}","received_events_url":"https://api.github.com/users/ClusterHQ/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ClusterHQ/flocker","description":"Easily manage Docker containers & their data","fork":false,"url":"https://api.github.com/repos/ClusterHQ/flocker","forks_url":"https://api.github.com/repos/ClusterHQ/flocker/forks","keys_url":"https://api.github.com/repos/ClusterHQ/flocker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ClusterHQ/flocker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ClusterHQ/flocker/teams","hooks_url":"https://api.github.com/repos/ClusterHQ/flocker/hooks","issue_events_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/events{/number}","events_url":"https://api.github.com/repos/ClusterHQ/flocker/events","assignees_url":"https://api.github.com/repos/ClusterHQ/flocker/assignees{/user}","branches_url":"https://api.github.com/repos/ClusterHQ/flocker/branches{/branch}","tags_url":"https://api.github.com/repos/ClusterHQ/flocker/tags","blobs_url":"https://api.github.com/repos/ClusterHQ/flocker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ClusterHQ/flocker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ClusterHQ/flocker/git/refs{/sha}","trees_url":"https://api.github.com/repos/ClusterHQ/flocker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ClusterHQ/flocker/statuses/{sha}","languages_url":"https://api.github.com/repos/ClusterHQ/flocker/languages","stargazers_url":"https://api.github.com/repos/ClusterHQ/flocker/stargazers","contributors_url":"https://api.github.com/repos/ClusterHQ/flocker/contributors","subscribers_url":"https://api.github.com/repos/ClusterHQ/flocker/subscribers","subscription_url":"https://api.github.com/repos/ClusterHQ/flocker/subscription","commits_url":"https://api.github.com/repos/ClusterHQ/flocker/commits{/sha}","git_commits_url":"https://api.github.com/repos/ClusterHQ/flocker/git/commits{/sha}","comments_url":"https://api.github.com/repos/ClusterHQ/flocker/comments{/number}","issue_comment_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/comments{/number}","contents_url":"https://api.github.com/repos/ClusterHQ/flocker/contents/{+path}","compare_url":"https://api.github.com/repos/ClusterHQ/flocker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ClusterHQ/flocker/merges","archive_url":"https://api.github.com/repos/ClusterHQ/flocker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ClusterHQ/flocker/downloads","issues_url":"https://api.github.com/repos/ClusterHQ/flocker/issues{/number}","pulls_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls{/number}","milestones_url":"https://api.github.com/repos/ClusterHQ/flocker/milestones{/number}","notifications_url":"https://api.github.com/repos/ClusterHQ/flocker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ClusterHQ/flocker/labels{/name}","releases_url":"https://api.github.com/repos/ClusterHQ/flocker/releases{/id}","created_at":"2014-04-28T18:02:14Z","updated_at":"2015-06-04T02:12:52Z","pushed_at":"2015-06-04T16:22:42Z","git_url":"git://github.com/ClusterHQ/flocker.git","ssh_url":"git@github.com:ClusterHQ/flocker.git","clone_url":"https://github.com/ClusterHQ/flocker.git","svn_url":"https://github.com/ClusterHQ/flocker","homepage":"https://clusterhq.com","size":65961,"stargazers_count":1445,"watchers_count":1445,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":83,"mirror_url":null,"open_issues_count":24,"forks":83,"open_issues":24,"watchers":1445,"default_branch":"master"}},"base":{"label":"ClusterHQ:master","ref":"master","sha":"5f981bee2ce075be2cce42e71c00e168085b01a0","user":{"login":"ClusterHQ","id":7913449,"avatar_url":"https://avatars.githubusercontent.com/u/7913449?v=3","gravatar_id":"","url":"https://api.github.com/users/ClusterHQ","html_url":"https://github.com/ClusterHQ","followers_url":"https://api.github.com/users/ClusterHQ/followers","following_url":"https://api.github.com/users/ClusterHQ/following{/other_user}","gists_url":"https://api.github.com/users/ClusterHQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ClusterHQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClusterHQ/subscriptions","organizations_url":"https://api.github.com/users/ClusterHQ/orgs","repos_url":"https://api.github.com/users/ClusterHQ/repos","events_url":"https://api.github.com/users/ClusterHQ/events{/privacy}","received_events_url":"https://api.github.com/users/ClusterHQ/received_events","type":"Organization","site_admin":false},"repo":{"id":19248542,"name":"flocker","full_name":"ClusterHQ/flocker","owner":{"login":"ClusterHQ","id":7913449,"avatar_url":"https://avatars.githubusercontent.com/u/7913449?v=3","gravatar_id":"","url":"https://api.github.com/users/ClusterHQ","html_url":"https://github.com/ClusterHQ","followers_url":"https://api.github.com/users/ClusterHQ/followers","following_url":"https://api.github.com/users/ClusterHQ/following{/other_user}","gists_url":"https://api.github.com/users/ClusterHQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ClusterHQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClusterHQ/subscriptions","organizations_url":"https://api.github.com/users/ClusterHQ/orgs","repos_url":"https://api.github.com/users/ClusterHQ/repos","events_url":"https://api.github.com/users/ClusterHQ/events{/privacy}","received_events_url":"https://api.github.com/users/ClusterHQ/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ClusterHQ/flocker","description":"Easily manage Docker containers & their data","fork":false,"url":"https://api.github.com/repos/ClusterHQ/flocker","forks_url":"https://api.github.com/repos/ClusterHQ/flocker/forks","keys_url":"https://api.github.com/repos/ClusterHQ/flocker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ClusterHQ/flocker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ClusterHQ/flocker/teams","hooks_url":"https://api.github.com/repos/ClusterHQ/flocker/hooks","issue_events_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/events{/number}","events_url":"https://api.github.com/repos/ClusterHQ/flocker/events","assignees_url":"https://api.github.com/repos/ClusterHQ/flocker/assignees{/user}","branches_url":"https://api.github.com/repos/ClusterHQ/flocker/branches{/branch}","tags_url":"https://api.github.com/repos/ClusterHQ/flocker/tags","blobs_url":"https://api.github.com/repos/ClusterHQ/flocker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ClusterHQ/flocker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ClusterHQ/flocker/git/refs{/sha}","trees_url":"https://api.github.com/repos/ClusterHQ/flocker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ClusterHQ/flocker/statuses/{sha}","languages_url":"https://api.github.com/repos/ClusterHQ/flocker/languages","stargazers_url":"https://api.github.com/repos/ClusterHQ/flocker/stargazers","contributors_url":"https://api.github.com/repos/ClusterHQ/flocker/contributors","subscribers_url":"https://api.github.com/repos/ClusterHQ/flocker/subscribers","subscription_url":"https://api.github.com/repos/ClusterHQ/flocker/subscription","commits_url":"https://api.github.com/repos/ClusterHQ/flocker/commits{/sha}","git_commits_url":"https://api.github.com/repos/ClusterHQ/flocker/git/commits{/sha}","comments_url":"https://api.github.com/repos/ClusterHQ/flocker/comments{/number}","issue_comment_url":"https://api.github.com/repos/ClusterHQ/flocker/issues/comments{/number}","contents_url":"https://api.github.com/repos/ClusterHQ/flocker/contents/{+path}","compare_url":"https://api.github.com/repos/ClusterHQ/flocker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ClusterHQ/flocker/merges","archive_url":"https://api.github.com/repos/ClusterHQ/flocker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ClusterHQ/flocker/downloads","issues_url":"https://api.github.com/repos/ClusterHQ/flocker/issues{/number}","pulls_url":"https://api.github.com/repos/ClusterHQ/flocker/pulls{/number}","milestones_url":"https://api.github.com/repos/ClusterHQ/flocker/milestones{/number}","notifications_url":"https://api.github.com/repos/ClusterHQ/flocker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ClusterHQ/flocker/labels{/name}","releases_url":"https://api.github.com/repos/ClusterHQ/flocker/releases{/id}","created_at":"2014-04-28T18:02:14Z","updated_at":"2015-06-04T02:12:52Z","pushed_at":"2015-06-04T16:22:42Z","git_url":"git://github.com/ClusterHQ/flocker.git","ssh_url":"git@github.com:ClusterHQ/flocker.git","clone_url":"https://github.com/ClusterHQ/flocker.git","svn_url":"https://github.com/ClusterHQ/flocker","homepage":"https://clusterhq.com","size":65961,"stargazers_count":1445,"watchers_count":1445,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":83,"mirror_url":null,"open_issues_count":24,"forks":83,"open_issues":24,"watchers":1445,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506"},"html":{"href":"https://github.com/ClusterHQ/flocker/pull/1506"},"issue":{"href":"https://api.github.com/repos/ClusterHQ/flocker/issues/1506"},"comments":{"href":"https://api.github.com/repos/ClusterHQ/flocker/issues/1506/comments"},"review_comments":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506/comments"},"review_comment":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ClusterHQ/flocker/pulls/1506/commits"},"statuses":{"href":"https://api.github.com/repos/ClusterHQ/flocker/statuses/b60f722439ee6a8065a7298eb0e5f80c108c452a"}}}}