various updates v.dev3
This commit is contained in:
127
docs/source/cli/cloud_init.rst
Normal file
127
docs/source/cli/cloud_init.rst
Normal file
@ -0,0 +1,127 @@
|
||||
Using Cloud-init
|
||||
================
|
||||
|
||||
Cloud-init for new instances
|
||||
----------------------------
|
||||
|
||||
Cloud-init configs may be set inplace into :file:`instance.yaml`.
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: Example with Debian generic QCOW2 image
|
||||
:linenos:
|
||||
|
||||
name: genericdebian
|
||||
memory: 1024
|
||||
vcpus: 1
|
||||
image: debian-12-generic-amd64.qcow2
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
capacity:
|
||||
value: 5
|
||||
unit: GiB
|
||||
cloud_init:
|
||||
meta_data:
|
||||
hostname: genericdebian
|
||||
root_pass: secure_pass
|
||||
user_data: |
|
||||
## template: jinja
|
||||
#cloud-config
|
||||
merge_how:
|
||||
- name: list
|
||||
settings: [append]
|
||||
hostname: {{ ds.meta_data.hostname }}
|
||||
fqdn: {{ ds.meta_data.hostname }}.instances.generic.cloud
|
||||
manage_etc_hosts: true
|
||||
chpasswd:
|
||||
users:
|
||||
- name: root
|
||||
password: {{ ds.meta_data.root_pass }}
|
||||
type: text
|
||||
expire: False
|
||||
ssh_pwauth: True
|
||||
package_update: true
|
||||
package_upgrade: true
|
||||
packages:
|
||||
- qemu-guest-agent
|
||||
- vim
|
||||
- psmisc
|
||||
- htop
|
||||
runcmd:
|
||||
- [ systemctl, daemon-reload ]
|
||||
- [ systemctl, enable, qemu-guest-agent.service ]
|
||||
- [ systemctl, start, --no-block, qemu-guest-agent.service ]
|
||||
|
||||
You can use separate file in this way:
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: user-data in separate file
|
||||
:emphasize-lines: 11-
|
||||
:linenos:
|
||||
|
||||
name: genericdebian
|
||||
memory: 1024
|
||||
vcpus: 1
|
||||
image: debian-12-generic-amd64.qcow2
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
capacity:
|
||||
value: 25
|
||||
unit: GiB
|
||||
cloud_init:
|
||||
user_data: user-data.yaml
|
||||
|
||||
Base64 encoded string with data must be ``base64:`` prefixed:
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: user-data as base64 encoded string
|
||||
:emphasize-lines: 11-
|
||||
:linenos:
|
||||
|
||||
name: genericdebian
|
||||
memory: 1024
|
||||
vcpus: 1
|
||||
image: debian-12-generic-amd64.qcow2
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
capacity:
|
||||
value: 25
|
||||
unit: GiB
|
||||
cloud_init:
|
||||
user_data: base64:I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogY2xvdWRlYmlhbgpmcWRuOiBjbG91ZGViaWFuLmV4YW1wbGUuY29tCm1hbmFnZV9ldGNfaG9zdHM6IHRydWUK
|
||||
|
||||
Also you can write config in YAML. Please note that in this case you will not be able to use the ``#cloud-config`` shebang.
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: meta-data as nested YAML
|
||||
:emphasize-lines: 12-14
|
||||
:linenos:
|
||||
|
||||
name: genericdebian
|
||||
memory: 1024
|
||||
vcpus: 1
|
||||
image: debian-12-generic-amd64.qcow2
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
capacity:
|
||||
value: 25
|
||||
unit: GiB
|
||||
cloud_init:
|
||||
meta_data:
|
||||
myvar: example
|
||||
another_one: example_2
|
||||
user_data: |
|
||||
#cloud-config
|
||||
#something here
|
||||
|
||||
Edit Cloud-init config files on existing instance
|
||||
-------------------------------------------------
|
||||
|
||||
Use ``setcloudinit`` subcommand::
|
||||
|
||||
compute setcloudinit myinstance --user-data user_data.yaml
|
||||
|
||||
See `setcloudinit <../cli/reference.html#setcloudinit>`_ for details.
|
@ -1,12 +1,21 @@
|
||||
Usage
|
||||
=====
|
||||
Getting started
|
||||
===============
|
||||
|
||||
Creating compute instances
|
||||
--------------------------
|
||||
|
||||
First place your image into images pool path.
|
||||
Compute instances are created through a description in yaml format. The description may be partial, the configuration will be supplemented with default parameters.
|
||||
|
||||
Create :file:`inatance.yaml` config file with following content. Replace `debian_12.qcow2` with your actual image filename.
|
||||
This page describes how to start up a basic instance, you'll probably want to use cloud-init to get the guest up and running, see the instructions at `Using cloud-init <cloud_init.html>`_.
|
||||
|
||||
The following examples contains minimal instance configuration. See also full example `here <instance_file.html>`_
|
||||
|
||||
Using prebuilt QCOW2 disk image
|
||||
```````````````````````````````
|
||||
|
||||
First place your image into ``images`` pool path.
|
||||
|
||||
Create :file:`instance.yaml` config file with following content. Replace `debian_12.qcow2` with your actual image filename.
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: Using prebuilt QCOW2 disk image
|
||||
@ -20,14 +29,13 @@ Create :file:`inatance.yaml` config file with following content. Replace `debian
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
target: vda
|
||||
capacity:
|
||||
value: 10
|
||||
unit: GiB
|
||||
|
||||
Check out what configuration will be applied when ``init``::
|
||||
|
||||
compute init -t
|
||||
compute init --test
|
||||
|
||||
Initialise instance with command::
|
||||
|
||||
@ -50,7 +58,7 @@ Note that the ``image`` parameter is not used here.
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: Using ISO image
|
||||
:emphasize-lines: 11-13
|
||||
:emphasize-lines: 10-12
|
||||
:linenos:
|
||||
|
||||
name: myinstance
|
||||
@ -59,7 +67,6 @@ Note that the ``image`` parameter is not used here.
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
target: vda
|
||||
capacity:
|
||||
value: 10
|
||||
unit: GiB
|
||||
@ -80,9 +87,8 @@ Add ``address`` attribute to start listen on all host network interfaces.
|
||||
.. code-block:: xml
|
||||
:caption: libvirt XML config fragment
|
||||
:emphasize-lines: 2
|
||||
:linenos:
|
||||
|
||||
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
|
||||
<graphics type='vnc' port='-1' autoport='yes'>
|
||||
<listen type='address' address='0.0.0.0'/>
|
||||
</graphics>
|
||||
|
||||
@ -96,7 +102,31 @@ Start instance and connect to VNC via any VNC client such as `Remmina <https://r
|
||||
|
||||
Finish the OS installation over VNC and then do::
|
||||
|
||||
compute setcdrom myinstance /images/debian-12.2.0-amd64-netinst.iso --detach
|
||||
compute setcdrom myinstance --detach /images/debian-12.2.0-amd64-netinst.iso
|
||||
compute powrst myinstance
|
||||
|
||||
CDROM will be detached. ``powrst`` command will perform instance shutdown and start. Instance will booted from `vda` disk.
|
||||
|
||||
Using existing disk
|
||||
```````````````````
|
||||
|
||||
Place your disk image in ``volumes`` storage pool.
|
||||
|
||||
Replace `/volume/myvolume.qcow2` with actual path to disk.
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: Using existing disk
|
||||
:emphasize-lines: 7
|
||||
:linenos:
|
||||
|
||||
name: myinstance
|
||||
memory: 2048
|
||||
vcpus: 2
|
||||
volumes:
|
||||
- type: file
|
||||
is_system: true
|
||||
source: /volumes/myvolume.qcow2
|
||||
|
||||
Initialise and start instance::
|
||||
|
||||
compute init --start
|
@ -2,7 +2,9 @@ CLI
|
||||
===
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:maxdepth: 3
|
||||
|
||||
usage
|
||||
getting_started
|
||||
cloud_init
|
||||
instance_file
|
||||
reference
|
||||
|
8
docs/source/cli/instance_file.rst
Normal file
8
docs/source/cli/instance_file.rst
Normal file
@ -0,0 +1,8 @@
|
||||
Instance file reference
|
||||
=======================
|
||||
|
||||
There is full example of :file:`instance.yaml` with comments.
|
||||
|
||||
.. literalinclude:: instance.yaml
|
||||
:caption: instance.yaml
|
||||
:language: yaml
|
@ -2,6 +2,6 @@ CLI Reference
|
||||
=============
|
||||
|
||||
.. argparse::
|
||||
:module: compute.cli.control
|
||||
:module: compute.cli.parser
|
||||
:func: get_parser
|
||||
:prog: compute
|
||||
|
Reference in New Issue
Block a user