158 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .. _admin-guide:
 | |
| 
 | |
| 
 | |
| Usage Guide For Administrators
 | |
| ==============================
 | |
| 
 | |
| Start API
 | |
| ----------
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud api
 | |
| 
 | |
| Host Creation
 | |
| -------------
 | |
| 
 | |
| Currently, we don't have any host (that runs virtual machines).
 | |
| So, we need to create it by executing the following command
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud-cli host create --hostname ungleich.ch --cpu 32 --ram '32GB' --os-ssd '32GB'
 | |
| 
 | |
| You should see something like the following
 | |
| 
 | |
| .. code-block:: json
 | |
| 
 | |
|     {
 | |
|         "message": "Host Created"
 | |
|     }
 | |
| 
 | |
| Start Scheduler
 | |
| ---------------
 | |
| Scheduler is responsible for scheduling VMs on appropriate host.
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud scheduler
 | |
| 
 | |
| Start Host
 | |
| ----------
 | |
| Host is responsible for handling the following actions
 | |
| 
 | |
| * Start VM.
 | |
| * Stop VM.
 | |
| * Create VM.
 | |
| * Delete VM.
 | |
| * Migrate VM.
 | |
| * Manage Network Resources needed by VMs.
 | |
| 
 | |
| It uses a hypervisor such as QEMU to perform these actions.
 | |
| 
 | |
| To start host we created earlier, execute the following command
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud host ungleich.ch
 | |
| 
 | |
| Create OS Image
 | |
| ---------------
 | |
| 
 | |
| Create ucloud-init ready OS image (Optional)
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| This step is optional if you just want to test ucloud. However, sooner or later
 | |
| you want to create OS images with ucloud-init to properly
 | |
| contexualize VMs.
 | |
| 
 | |
| 1. Start a VM with OS image on which you want to install ucloud-init
 | |
| 2. Execute the following command on the started VM
 | |
| 
 | |
|    .. code-block:: sh
 | |
| 
 | |
|     apk add git
 | |
|     git clone https://code.ungleich.ch/ucloud/ucloud-init.git
 | |
|     cd ucloud-init
 | |
|     sh ./install.sh
 | |
| 3. Congratulations. Your image is now ucloud-init ready.
 | |
| 
 | |
| 
 | |
| Upload Sample OS Image
 | |
| ~~~~~~~~~~~~~~~~~~~~~~
 | |
| Execute the following to get the sample OS image file.
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     mkdir /var/www/admin
 | |
|     (cd /var/www/admin && wget https://cloud.ungleich.ch/s/qTb5dFYW5ii8KsD/download)
 | |
| 
 | |
| Run File Scanner and Image Scanner
 | |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | |
| Currently, our uploaded file *alpine-untouched.qcow2* is not tracked by ucloud. We can only make
 | |
| images from tracked files. So, we need to track the file by running File Scanner
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud filescanner
 | |
| 
 | |
| File Scanner would run, scan your uploaded image and track it. You can check whether your image
 | |
| is successfully tracked by executing the :code:`ucloud-cli user files`, It will return something like the following
 | |
| 
 | |
| .. _list-user-files:
 | |
| 
 | |
| .. code-block:: json
 | |
| 
 | |
|     {
 | |
|         "message": [
 | |
|             {
 | |
|                 "filename": "alpine-untouched.qcow2",
 | |
|                 "uuid": "3f75bd20-45d6-4013-89c4-7fceaedc8dda"
 | |
|             }
 | |
|         ]
 | |
|     }
 | |
| 
 | |
| Our file is now being tracked by ucloud. Lets create an OS image using the uploaded file.
 | |
| 
 | |
| An image belongs to an image store. There are two types of store
 | |
| 
 | |
| * Public Image Store
 | |
| * Private Image Store (Not Implemented Yet)
 | |
| 
 | |
| .. note::
 | |
|     **Quick Quiz** Have we created an image store yet?
 | |
| 
 | |
| The answer is **No, we haven't**. Creating a sample image store is very easy.
 | |
| Just execute the following command
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     (cd ~/ucloud && pipenv run python api/create_image_store.py)
 | |
| 
 | |
| An image store (with name = "images") would be created. Now, we are fully ready for creating our
 | |
| very own image. Executing the following command to create image using the file uploaded earlier
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud-cli image create-from-file --name alpine --uuid 3f75bd20-45d6-4013-89c4-7fceaedc8dda --image-store-name images
 | |
| 
 | |
| Please note that your **uuid** would be different. See :ref:`List of user files <list-user-files>`.
 | |
| 
 | |
| Now, ucloud have received our request to create an image from file. We have to run Image Scanner to make the image.
 | |
| 
 | |
| .. code-block:: sh
 | |
| 
 | |
|     ucloud imagescanner
 | |
| 
 | |
| To make sure, that our image is create run :code:`ucloud-cli image list --public`. You would get
 | |
| output something like the following
 | |
| 
 | |
| .. code-block:: json
 | |
| 
 | |
|     {
 | |
|         "images": [
 | |
|             {
 | |
|                 "name": "images:alpine",
 | |
|                 "status": "CREATED"
 | |
|             }
 | |
|         ]
 | |
|     }
 |