You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository is based on original [work by Bradley Leonard](https://github.com/bcleonard/proxmox-qdevice). Many thanks to his hard work!
4
-
5
3
This repository will allow you build and deploy a docker container for use with a proxmox cluster as an external qdevice. Properly configured proxmox clusters require an odd number servers in the cluster. In the event that you have an even number of proxmox servers (like 2, such as I have), you need an another device to vote. Proxmox supports this by allow you to configure a qdevice for an external vote.
6
4
7
-
Normally running an even number of servers in a cluster isn't a problem, but I've had situations where I've booted both proxmox servers at the same time. In that case, the first server to come online doesn't have a quarum (1 of 2) so the images won't start. The 2nd server will (2 of 2). With an external qdevice thats already up, the first device to come up has quarom (2 of 3).
5
+
Normally running an even number of servers in a cluster isn't a problem, but I've had situations where I've booted both proxmox servers at the same time. In that case, the first server to come online doesn't have a quorum (1 of 2) so the virtual machines and containers won't start. With an external qdevice thats already up, the first device to come up has quorum (2 of 3).
8
6
9
7
For more information on proxmmox clusters, external qdevices, and how to configure/use them, go [here](https://pve.proxmox.com/wiki/Cluster_Manager#_corosync_external_vote_support).
10
8
11
9
Run this container on a device that is *NOT* a virtual instance on one of your proxmox servers.
12
10
13
-
## Wiki
14
11
15
-
Bradley's original wiki [can be found here](https://github.com/bcleonard/proxmox-qdevice/wiki) which contains all kinds of information on configuring this container.
12
+
## Provenance:
13
+
14
+
This container image is based on Docker's Debian DHI (*Docker Hardened Image*), i.e. it is supposed to be a more secure variant of a Debian container. At the time of writing, this is based upon Debian 13 (Trixie).
16
15
17
-
## Requirements/Prerequisites
16
+
The QDevice software is installed from Debian's own software repositories.
17
+
18
+
The image contains a shell script and a Supervisord configuration created by this project's original author. This project is a fork of [bcleonard/proxmox-qdevice](https://github.com/bcleonard/proxmox-qdevice).
19
+
20
+
Why a fork? The upstream project hasn't had an update in a year and it lacks weekly builds of the parent image, thus opening up your environment to long-lived vulnerabilities.
18
21
19
-
Please check the [wiki](https://github.com/bcleonard/proxmox-qdevice/wiki#pre-requisites) for the most up to date information.
20
22
21
23
## Install:
22
24
@@ -26,10 +28,10 @@ This container is designed to run from either Docker Compose or a container mana
26
28
27
29
Modify the docker-compose.yml file. Make sure to change:
28
30
29
-
* Environment Variable NEW_ROOT_PASSWORD
30
-
* Location of your corosync-data (so you can keep your configuration between restarts, etc.)
31
-
* Hostname
32
-
* Local network information
31
+
* Environment Variable NEW_ROOT_PASSWORD.
32
+
* Location of your corosync-data (so you can keep your configuration between restarts, etc.).
33
+
* Hostname .
34
+
* Local network information.
33
35
parent (the ethernet device to bind macvlan)
34
36
ipv4_address
35
37
subnet
@@ -44,17 +46,6 @@ You can either run the command:
44
46
45
47
Or cut and paste the docker-compose.yml into portainer.io as a stack and then deploy.
46
48
47
-
## Tested as working on:
48
-
49
-
* Debian 12 (bookworm) (all point releases up to 12) (Virtual Instance)
50
-
* Docker version 24.0.5, build ced0996 (and higher)
51
-
* Proxmox v8.0.4 (and higher)
52
-
* Portainer Community Edition v2.18.4 (and higher)
53
-
54
-
## Problems & Troubleshooting:
55
-
56
-
* You can find the most up to date information on issues, known problems and troubleshooting by reviewing the [issues](https://github.com/unixerius/proxmox-qdevice/issues).
57
-
58
49
## Security Implications:
59
50
60
51
This container installs and configures a sshd server that permits root logins. Proxmox runs in the same configuration. Upon startup, if the environment variable **NEW_ROOT_PASSWORD** exists the root password will be set to the value of that variable upon boot. You can specify what the root password should be setting the value of **NEW_ROOT_PASSWORD** to a password in one of the following ways:
@@ -64,28 +55,17 @@ This container installs and configures a sshd server that permits root logins.
64
55
65
56
Please note that all of the ways listed above to set the environment above should survive the recreation of the container.
66
57
67
-
An alternative would be to **NOT SET** the password at all and change it after the container has started and is running. Please note that this method will not survive the recreation of the container. This means you have to change the password manually every time you upgrade and/or recreate the container. To change the password after the container has started, do the following:
68
-
69
-
```bash
70
-
sudo docker exec -it proxmox-qdevice /bin/bash
71
-
root@proxmox-qdevice:/# passwd
72
-
New password:
73
-
Retype new password:
74
-
passwd: password updated successfully
75
-
root@proxmox-qdevice:/# exit
76
-
```
77
-
78
58
> [!IMPORTANT]
79
59
>
80
60
> ## A note on `latest` and `beta`:
81
61
>
82
-
> It is not recommended to use the `latest` (`bcleonard/proxmox-qdevice`, `bcleonard/proxmox-qdevice:latest`) or `beta` (`bcleonard/proxmox-qdevice:beta`) tag for production setups.
62
+
> It is not recommended to use the `latest` (`unixerius/proxmox-qdevice`, `unixerius/proxmox-qdevice:latest`) tag for production setups.
83
63
>
84
-
> [Those tags point](https://hub.docker.com/r/bcleonard/proxmox-qdevice/tags) might not point to the latest commit in the `master` branch. They do not carry any promise of stability, and using them will probably put your proxmox-qdevice setup at risk of experiencing uncontrolled updates to non backward compatible versions (or versions with breaking changes). You should always specify the version you want to use explicitly to ensure your setup doesn't break when the image is updated.
64
+
> [Those tags point](https://hub.docker.com/r/unixerius/proxmox-qdevice/tags) might not point to the latest commit in the `master` branch. They do not carry any promise of stability, and using them will probably put your proxmox-qdevice setup at risk of experiencing uncontrolled updates to non backward compatible versions (or versions with breaking changes). You should always specify the version you want to use explicitly to ensure your setup doesn't break when the image is updated.
85
65
86
66
## Acknowledgements:
87
67
88
-
When I started looking at how to install & configure an external qdevice in a docker container, there was very little information available. All the info I found was relevant to earlier versions of Proxmox ( < 8 ) or didn't work when I tried to deploy the container. However, I did find the following very useful:
68
+
This repository is based on original [work by Bradley Leonard](https://github.com/bcleonard/proxmox-qdevice). Many thanks to his hard work!
69
+
70
+
Bradley's original wiki [can be found here](https://github.com/bcleonard/proxmox-qdevice/wiki) which contains all kinds of information on configuring this container.
89
71
90
-
*[Proxmox VE 7 Corosync QDevice in a Docker container](https://raymii.org/s/tutorials/Proxmox_VE_7_Corosync_QDevice_in_Docker.html)
0 commit comments