156 lines
5.1 KiB
Markdown
156 lines
5.1 KiB
Markdown
|
|
# To run the image maker make all the script able to run
|
|
Open the console or ssh in to your Proxmox node.
|
|
```sh
|
|
apt install git
|
|
git clone https://gitlab.skui.io/Hawolex/prox-mal
|
|
cd prox-mal/
|
|
chmod +x all.sh
|
|
./all.sh
|
|
|
|
```
|
|
|
|
## Image Medium and Large
|
|
Docker and Docker Compose comes pre installed from the Docker github repo. \
|
|
If not wanted, you can comment out line 12 in Large and Medium.sh
|
|
|
|
<details>
|
|
<summary>Source Doc </summary>
|
|
|
|
|
|
# Cloud images in Proxmox
|
|
* [Preparing Cloud-Init Templates](https://pve.proxmox.com/pve-docs/qm.1.html)
|
|
* [Cloud-Init Support - Proxmox VE](https://pve.proxmox.com/wiki/Cloud-Init_Support)
|
|
* [Proxmox VE Administration Guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html)
|
|
|
|
## A script which automates these steps for multiple distros incl. CoreOS, CentOS, Arch and ALpine
|
|
- [create-cloud-template.sh](https://gist.github.com/chriswayg/43fbea910e024cbe608d7dcb12cb8466)
|
|
|
|
### Steps for creating an Ubuntu 18.04 cloud template
|
|
* Using a ready-to-use Ubuntu image
|
|
* [Ubuntu 18.04 LTS (Bionic Beaver) Daily Build](https://cloud-images.ubuntu.com/bionic/current/)
|
|
|
|
```sh
|
|
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
|
|
|
|
# Create a VM
|
|
qm create 9000 --name ubuntu1804-templ --memory 2048 --net0 virtio,bridge=vmbr1
|
|
|
|
# Import the disk in qcow2 format (as unused disk)
|
|
qm importdisk 9000 bionic-server-cloudimg-amd64.img local -format qcow2
|
|
|
|
# Attach the disk to the vm using VirtIO SCSI
|
|
qm set 9000 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9000/vm-9000-disk-0.qcow2
|
|
|
|
# Important settings
|
|
qm set 9000 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
|
|
|
|
# The initial disk is only 2GB, thus we make it larger
|
|
qm resize 9000 scsi0 +30G
|
|
|
|
# Using a dhcp server on vmbr1 or use static IP
|
|
qm set 9000 --ipconfig0 ip=dhcp
|
|
#qm set 9000 --ipconfig0 ip=10.10.10.222/24,gw=10.10.10.1
|
|
|
|
# user authentication for 'ubuntu' user (optional password)
|
|
qm set 9000 --sshkey ~/.ssh/id_rsa.pub
|
|
#qm set 9000 --cipassword AweSomePassword
|
|
|
|
# check the cloud-init config
|
|
qm cloudinit dump 9000 user
|
|
|
|
# create tempalte and a linked clone
|
|
qm template 9000
|
|
qm clone 9000 190 --name ubuntu1804-1
|
|
qm start 190
|
|
|
|
rm -v bionic-server-cloudimg-amd64.img
|
|
```
|
|
|
|
* Login with: `ssh ubuntu@10.10.10.190`
|
|
|
|
### Steps for creating a Debian 10 cloud template
|
|
* Using a ready-to-use Debian image
|
|
* [Debian Official Cloud Images for OpenStack](https://cdimage.debian.org/cdimage/openstack/)
|
|
|
|
```
|
|
wget https://cdimage.debian.org/cdimage/openstack/current/debian-10.0.2-20190721-openstack-amd64.qcow2
|
|
|
|
# Create a VM
|
|
qm create 9110 --name debian10-cloud --memory 2048 --net0 virtio,bridge=vmbr1
|
|
|
|
# Import the disk in qcow2 format (as unused disk)
|
|
qm importdisk 9110 debian-10.0.2-20190721-openstack-amd64.qcow2 local -format qcow2
|
|
|
|
# Attach the disk to the vm using VirtIO SCSI
|
|
qm set 9110 --scsihw virtio-scsi-pci --scsi0 /var/lib/vz/images/9110/vm-9110-disk-0.qcow2
|
|
|
|
# Important settings
|
|
qm set 9110 --ide2 local:cloudinit --boot c --bootdisk scsi0 --serial0 socket --vga serial0
|
|
|
|
# The initial disk is only 2GB, thus we make it larger
|
|
qm resize 9110 scsi0 +30G
|
|
|
|
# Using a dhcp server on vmbr1 or use static IP
|
|
qm set 9110 --ipconfig0 ip=dhcp
|
|
#qm set 9110 --ipconfig0 ip=10.10.10.222/24,gw=10.10.10.1
|
|
|
|
# user authentication for 'debian' user (optional password)
|
|
qm set 9110 --sshkey ~/.ssh/id_rsa.pub
|
|
#qm set 9110 --cipassword AweSomePassword
|
|
|
|
# check the cloud-init config
|
|
qm cloudinit dump 9110 user
|
|
|
|
# create tempalte and a linked clone
|
|
qm template 9110
|
|
qm clone 9110 191 --name debian10-1
|
|
qm start 191
|
|
|
|
rm -v debian-10.0.2-20190721-openstack-amd64.qcow2
|
|
```
|
|
|
|
* Login with: `ssh debian@10.10.10.191`
|
|
|
|
#### To resize the VM disk later
|
|
```
|
|
qm shutdown 190 && qm wait
|
|
qm resize 190 scsi0 +8G
|
|
qm start 190
|
|
```
|
|
|
|
### To fully disable cloud-init
|
|
When booting under *systemd*, you can disable cloud-init completely by either:
|
|
* creating a file: `sudo touch /etc/cloud/cloud-init.disabled`
|
|
* or adding `cloud-init=disabled` to the kernel command line as found in `/proc/cmdline`
|
|
|
|
### To partially disable cloud-init
|
|
To partially disable some functions, modify: `/etc/cloud/cloud.cfg`, for example to disable network configuration:
|
|
```sh
|
|
sudo su -
|
|
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
|
|
```
|
|
|
|
### To show the Grub Menu on the serial console
|
|
`sudo nano /etc/default/grub config`
|
|
|
|
```
|
|
GRUB_TERMINAL="console serial"
|
|
```
|
|
|
|
`sudo update-grub`
|
|
|
|
### Checking cloud-init
|
|
|
|
* [Cloud-init v.18.2: CLI subcommands | Ubuntu](https://ubuntu.com/blog/cloud-init-v-18-2-cli-subcommands)
|
|
* [Directory layout — Cloud-Init 19.2 documentation](https://cloudinit.readthedocs.io/en/latest/topics/dir_layout.html)
|
|
* [Testing and debugging cloud-init — Cloud-Init 19.2 documentation](https://cloudinit.readthedocs.io/en/latest/topics/debugging.html)
|
|
[cloud-localds(1) — cloud-image-utils — Debian testing — Debian Manpages](https://manpages.debian.org/testing/cloud-image-utils/cloud-localds.1.en.html)
|
|
|
|
### Convert Images
|
|
https://docs.openstack.org/image-guide/convert-images.html
|
|
```
|
|
qemu-img convert -f raw -O qcow2 bionic-server-cloudimg-amd64.img bionic-server-cloudimg-amd64.qcow2
|
|
```
|
|
|
|
</details> |