forked from uncloud/uncloud
192 lines
4.2 KiB
ReStructuredText
192 lines
4.2 KiB
ReStructuredText
Installation
|
|
============
|
|
|
|
.. note::
|
|
The below installation instructions are for single node and without ceph ucloud installation.
|
|
|
|
The instructions assumes the following things
|
|
|
|
* User is **root**.
|
|
* Base Directory is `/root/`.
|
|
|
|
Alpine
|
|
------
|
|
Python Wheel (Binary) Packages does not support Alpine Linux as it is using musl libc instead of glibc.
|
|
Therefore, expect longer installation times than other linux distributions.
|
|
|
|
Enable Edge Repos, Update and Upgrade
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. warning::
|
|
The below commands would overwrite your repositories sources and upgrade all packages and their dependencies to match those available in edge repos. **So, be warned**
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
cat > /etc/apk/repositories << EOF
|
|
http://dl-cdn.alpinelinux.org/alpine/edge/main
|
|
http://dl-cdn.alpinelinux.org/alpine/edge/community
|
|
http://dl-cdn.alpinelinux.org/alpine/edge/testing
|
|
EOF
|
|
|
|
apk update
|
|
apk upgrade
|
|
|
|
|
|
Install Dependencies
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
apk add git python3 alpine-sdk python3-dev etcd etcd-ctl openntpd \
|
|
libffi-dev openssl-dev make py3-protobuf py3-tempita chrony \
|
|
qemu qemu-system-x86_64 qemu-img
|
|
|
|
pip3 install pipenv
|
|
|
|
Syncronize Date/Time
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
service chronyd start
|
|
rc-update add chronyd
|
|
|
|
|
|
Start etcd and enable it
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
start-stop-daemon -b etcd
|
|
rc-update add etcd
|
|
|
|
|
|
Install uotp
|
|
~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
git clone https://code.ungleich.ch/ungleich-public/uotp.git
|
|
cd uotp
|
|
mv .env.sample .env
|
|
|
|
pipenv --three --site-packages
|
|
pipenv install
|
|
pipenv run python app.py
|
|
|
|
Run :code:`ETCDCTL_API=3 etcdctl get /uotp/admin --print-value-only` to get admin seed. A sample output
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"seed": "FYTVQ72A2CJJ4TB4",
|
|
"realm": ["ungleich-admin"]
|
|
}
|
|
|
|
Now, run :code:`pipenv run python scripts/create-auth.py FYTVQ72A2CJJ4TB4` (Replace **FYTVQ72A2CJJ4TB4** with your admin seed obtained in previous step).
|
|
A sample output is as below. It shows seed of auth.
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"message": "Account Created\nname: auth, realm: ['ungleich-auth'], seed: XZLTUMX26TRAZOXC"
|
|
}
|
|
|
|
.. note::
|
|
Please note both **admin** and **auth** seeds as we would need them in setting up ucloud
|
|
|
|
|
|
Install and configure ucloud
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
git clone https://code.ungleich.ch/ucloud/ucloud.git
|
|
cd ucloud
|
|
|
|
pipenv --three --site-packages
|
|
pipenv install
|
|
|
|
|
|
You just need to update **AUTH_SEED** in the below code to match your auth's seed.
|
|
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
cat > .env << EOF
|
|
AUTH_NAME=auth
|
|
AUTH_SEED=XZLTUMX26TRAZOXC
|
|
AUTH_REALM=ungleich-auth
|
|
|
|
REALM_ALLOWED = ["ungleich-admin", "ungleich-user"]
|
|
|
|
OTP_SERVER="http://127.0.0.1:8000/"
|
|
|
|
ETCD_URL=localhost
|
|
|
|
WITHOUT_CEPH=True
|
|
|
|
BASE_DIR=/var/www
|
|
IMAGE_DIR=/var/image
|
|
VM_DIR=/var/vm
|
|
|
|
VM_PREFIX=/v1/vm/
|
|
HOST_PREFIX=/v1/host/
|
|
REQUEST_PREFIX=/v1/request/
|
|
FILE_PREFIX=/v1/file/
|
|
IMAGE_PREFIX=/v1/image/
|
|
IMAGE_STORE_PREFIX=/v1/image_store/
|
|
USER_PREFIX=/v1/user/
|
|
NETWORK_PREFIX=/v1/network/
|
|
|
|
ssh_username=meow
|
|
ssh_pkey="~/.ssh/id_rsa"
|
|
|
|
VXLAN_PHY_DEV="eth0"
|
|
|
|
EOF
|
|
|
|
|
|
Install and configure ucloud-cli
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. code-block:: sh
|
|
:linenos:
|
|
|
|
git clone https://code.ungleich.ch/ucloud/ucloud-cli.git
|
|
cd ucloud-cli
|
|
pipenv --three --site-packages
|
|
pipenv install
|
|
|
|
cat > .env << EOF
|
|
UCLOUD_API_SERVER=http://localhost:5000
|
|
EOF
|
|
|
|
mkdir /var/www/
|
|
mkdir /var/image/
|
|
mkdir /var/vm/
|
|
|
|
|
|
Environment Variables and aliases
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
To ease usage of ucloud and its various componenets put the following in your shell
|
|
profile e.g *~/.profile*
|
|
|
|
.. code-block:: sh
|
|
|
|
export OTP_NAME=admin
|
|
export OTP_REALM=ungleich-admin
|
|
export OTP_SEED=FYTVQ72A2CJJ4TB4
|
|
|
|
alias ucloud='cd /root/ucloud/ && pipenv run python ucloud.py'
|
|
alias ucloud-cli='cd /root/ucloud-cli/ && pipenv run python ucloud.py'
|
|
alias uotp='cd /root/uotp/ && pipenv run python app.py'
|
|
|
|
and run :code:`source ~/.profile`
|