6.0 KiB
6.0 KiB
title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
Mise En Containeurs | Il s'agit de prendre les serveurs phyiques et de les mettre en containeurs LXC. | true | 2022-07-20T05:37:19.453Z | markdown | 2022-07-15T12:34:08.620Z |
Mise en containeurs
/fr/acts/digital/changes/misesencontaineurs
L'objectif est de mettre les serveurs actuels virtuels dans des containteurs d'un serveur plus gros.
- Contabob
- Contaboa
- Contaboc
- Linodea
- Hetznera
- Hetznerb
- Hetznerc
- Contabod
- Ikoulac
- Ikoulaf
- Ikoulag
- Ionosa
- Ionosb
- ContaboBlockStorage
Considérations techniques
https://discuss.linuxcontainers.org/t/howto-use-lxd-p2c/3574
https://blog.simos.info/how-to-compile-lxd-p2c-to-migrate-physical-servers-to-lxd-containers/
https://linuxcontainers.org/lxd/docs/latest/installing/
apt install sqlite3
aptitude install -y build-essential acl libacl1-dev libcap-dev liblxc1 \
libsqlite3-dev libudev-dev libuv1-dev attr autoconf automake \
dnsmasq-base git golang libacl1-dev libcap-dev libtool libudev-dev liblz4-dev \
libuv1-dev make pkg-config rsync squashfs-tools tar tcl xz-utils ebtables \
lxc-dev
cd /root
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..
export CGO_CFLAGS="-I/deps/raft/include/ -I/deps/dqlite/include/"
export CGO_LDFLAGS="-L/deps/raft/.libs -L/deps/dqlite/.libs/"
export LD_LIBRARY_PATH="/deps/raft/.libs/:/deps/dqlite/.libs/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
wget https://github.com/lxc/lxd/archive/refs/heads/master.zip
unzip master.zip
cd lxd-master/
aptitude update
aptitude -y upgrade
apt install -y build-essential acl libacl1-dev libcap-dev liblxc1 liblxc-dev \
libsqlite3-dev libudev-dev libuv1-dev libdqlite-dev attr autoconf automake \
dnsmasq-base git golang libacl1-dev libcap-dev libtool libudev-dev liblz4-dev \
libuv1-dev make pkg-config rsync squashfs-tools tar tcl xz-utils ebtables \
go-dqlite golang-github-canonical-go-dqlite-dev
aptitude install -y build-essential acl libacl1-dev libcap-dev liblxc1 \
libsqlite3-dev libudev-dev libuv1-dev attr autoconf automake \
dnsmasq-base git golang libacl1-dev libcap-dev libtool libudev-dev liblz4-dev \
libuv1-dev make pkg-config rsync squashfs-tools tar tcl xz-utils ebtables \
aptitude install -y lxc-dev libdqlite-dev go-dqlite golang-github-canonical-go-dqlite-dev
wget https://github.com/lxc/lxd/archive/refs/heads/master.zip
unzip master.zip
cd lxd-master/
make deps
echo 'export CGO_CFLAGS="-I/root/go/deps/raft/include/ -I/root/go/deps/dqlite/include/"' >> /root/.bashrc
echo 'export CGO_LDFLAGS="-L/root/go/deps/raft/.libs -L/root/go/deps/dqlite/.libs/"' >> /root/.bashrc
echo 'export LD_LIBRARY_PATH="/root/go/deps/raft/.libs/:/root/go/deps/dqlite/.libs/"' >> /root/.bashrc
echo 'export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"' >> /root/.bashrc
source /root/.bashrc
make
echo 'export PATH="${PATH}:$(go env GOPATH)/bin"' >> /root/.bashrc
echo 'export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}"' >> /root/.bashrc
source /root/.bashrc
root@contabob:~/lxd-master# lxd-migrate
Please provide LXD server URL: https://ikoulaf.appgv.com:8443
Certificate fingerprint: 7843bcb8cb...
ok (y/n)? y
1) Use a certificate token
2) Use an existing TLS authentication certificate
3) Generate a temporary TLS authentication certificate
Please pick an authentication mechanism above: 3
Your temporary certificate is:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
It is recommended to have this certificate be manually added to LXD through `lxc config trust add` on the target server.
Alternatively you could use a pre-defined trust password to add it remotely (use of a trust password can be a security issue).
Would you like to use a trust password? [default=no]:
Press ENTER after the certificate was added to the remote server:
Remote LXD server:
Hostname: ikoulaf
Version: 5.3
Would you like to create a container (1) or virtual-machine (2)?: 1
Name of the new instance: contabob
Please provide the path to a root filesystem: /
Do you want to add additional filesystem mounts? [default=no]:
Instance to be created:
Name: contabob
Project: default
Type: container
Source: /
Additional overrides can be applied at this stage:
1) Begin the migration with the above configuration
2) Override profile list
3) Set additional configuration options
4) Change instance storage pool or volume size
5) Change instance network
Please pick one of the options above [default=1]:
Transferring instance: contabob: 1.39GB (6.05MB/s)
dnf makecache --refresh
dnf config-manager --set-enabled powertools
dnf install epel-release epel-next-release
dnf update
wget https://github.com/lxc/lxd/archive/refs/heads/master.zip
unzip master.zip
cd lxd-master/
dnf install acl attr autoconf automake dnsmasq git golang libacl-devel libcap-devel lxc-libs lxc-devel sqlite-devel libtool libudev-devel lz4-devel libuv make pkg-config rsync squashfs-tools tar tcl xz ebtables
make deps
export CGO_CFLAGS="-I/root/go/deps/raft/include/ -I/root/go/deps/dqlite/include/"
export CGO_LDFLAGS="-L/root/go/deps/raft/.libs -L/root/go/deps/dqlite/.libs/"
export LD_LIBRARY_PATH="/root/go/deps/raft/.libs/:/root/go/deps/dqlite/.libs/"
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
source /root/.bashrc
cd /root
wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
source /root/.bashrc
cd /root/lxd-master
make
echo 'export PATH="${PATH}:$(go env GOPATH)/bin"' >> /root/.bashrc
echo 'export LD_LIBRARY_PATH="$(go env GOPATH)/deps/dqlite/.libs/:$(go env GOPATH)/deps/raft/.libs/:${LD_LIBRARY_PATH}"' >> /root/.bashrc
source /root/.bashrc
firewall-cmd --zone=public --add-port=8443/tcp --permanent
systemctl reload firewalld
vi ../tempcert
lxc config trust add /root/tempcert