Tutoriel à l’Observatoire de Paris
2024-01-18
Note
Machine Virtuelle (MV), Disque Persistent (DP), Infrastructure-as-a-Service (IaaS)
@StormIT
@OpenStack
Services@OpenStack
Services@CERN
@OpenStack
openstack
<labo>-openrc.sh
export OS_AUTH_URL=https://keystone.obspm.fr:5000/v3/
export OS_PROJECT_ID=<project_id>
export OS_PROJECT_NAME="<labo>"
export OS_USER_DOMAIN_NAME="Obspm"
export OS_PROJECT_DOMAIN_ID="<project_domain_id>"
export OS_USERNAME="<user>"
export OS_PASSWORD=$OS_PASSWORD_INPUT
export OS_REGION_NAME="obspm_meudon"
export OS_INTERFACE=public
export OS_IDENTITY_API_VERSION=3
openstack server list
# +-------------------------+----------------+--------+-------------------------+--------------------------+--------+
# | ID | Name | Status | Networks | Image | Flavor |
# +-------------------------+----------------+--------+-------------------------+--------------------------+--------+
# | f9e655d7-791b-4095-a157 | Debian-11-tuto | ACTIVE | nuage- | N/A (booted from volume) | medium |
# | -2369ee1d36aa | | | poc=145.238.137.107 | | |
# +-------------------------+----------------+--------+-------------------------+--------------------------+--------+
cloudkey-<user>-obs.pem
openstack keypair create --public-key=${HOME}/.ssh/id_rsa.pub cloudkey-<user>
openstack keypair list
# +-------------------------+-------------------------------------------------+------+
# | Name | Fingerprint | Type |
# +-------------------------+-------------------------------------------------+------+
# | cloudkey-<user> | 33:91:4b:38:52:63:1d:18:7b:e0:e3:0d:3b:63:ce:4b | ssh |
# +-------------------------+-------------------------------------------------+------+
openstack image list
# +--------------------------------------+---------------------+--------+
# | ID | Name | Status |
# +--------------------------------------+---------------------+--------+
# | 509d6db5-a64d-408b-a49e-a40a7ff7930c | Debian-10 | active |
# | a6214ad4-7835-48f6-b2bc-15c8104bac08 | Debian-11-tuto | active |
# | 49a99d8a-3def-4aa9-8fc1-d6febf34b4cd | Ubuntu-Focal | active |
# | 1f46a506-7dbc-4318-8377-d61bf08418a9 | Ubuntu-Hirsute | active |
# +--------------------------------------+---------------------+--------+
Debian-10
Debian-11-tuto
: image ajoutée manuellement au catalogue pour le tutoriel, image recommandéeUbuntu-Focal
: 20.04 LTS (Focal Fossa) : EOL Avril 2025Ubuntu-Hirsute
: 21.04 (Hirsute Hippo) : EOLopenstack image create \
--container-format bare \
--disk-format qcow2 \
--min-disk 10 \
--min-ram 2048 \
--property hw_disk_bus=scsi \
--property hw_scsi_model=virtio-scsi \
--property os_type=linux \
--property os_distro=debian \
--property os_admin_user=debian \
--property os_version='11' \
--public \
--file debian-11-genericcloud-amd64-20221219-1234.qcow2 \
debian-11-<user>
medium
est un bon compromis avec les OS modernesopenstack flavor list
# +--------------------------------------+--------------+------+------+-----------+-------+-----------+
# | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
# +--------------------------------------+--------------+------+------+-----------+-------+-----------+
# | 03934b65-0ab9-4aae-b51d-60c20cab6090 | medium | 2049 | 64 | 0 | 4 | True |
# | 97ae1fbc-b2fb-4c8b-a2ca-3213cf8813ab | small | 1024 | 64 | 0 | 2 | True |
# | c3818476-5f31-4239-a92f-60489244b593 | super small | 512 | 16 | 0 | 1 | True |
# | ca7acb5c-9824-42e8-9076-5bb53f557acd | medium large | 4096 | 128 | 0 | 4 | True |
# | cc4f8859-0f81-4c2a-8992-c8637dbbcb94 | large | 8192 | 256 | 0 | 4 | True |
# | e5dc4fe0-e88a-4306-bfbd-0416e3bdf23c | small medium | 2048 | 64 | 0 | 2 | True |
# | f64a996d-0e62-4d94-9acd-2cc0a49efbc3 | very large | 8192 | 256 | 0 | 8 | True |
# +--------------------------------------+--------------+------+------+-----------+-------+-----------+
nuage-poc
openstack network list
# +--------------------------------------+-----------+--------------------------------------+
# | ID | Name | Subnets |
# +--------------------------------------+-----------+--------------------------------------+
# | 9223f9ff-7ab0-4268-9b7f-3b5966625c65 | nuage-poc | 12cdcc06-bbf0-48f2-b303-bdfab460c696 |
# +--------------------------------------+-----------+--------------------------------------+
default
: de basetuto-23
: ping et sshopenstack security group list
# +--------------------------------------+---------+--------------------------------+----------------------------------+------+
# | ID | Name | Description | Project | Tags |
# +--------------------------------------+---------+--------------------------------+----------------------------------+------+
# | 4cb51081-b60c-4413-9175-8c2252ce22ac | tuto-23 | with ssh and ping | 9940e0fb746448f58fa2f638fc4e2de3 | [] |
# | ba242052-744a-45af-9f11-61a56f4333bf | default | Default security group | 9940e0fb746448f58fa2f638fc4e2de3 | [] |
# +--------------------------------------+---------+--------------------------------+----------------------------------+------+
openstack server create \
--key-name cloudkey-<user> \
--image Debian-11-tuto \
--flavor medium \
--network nuage-poc \
--security-group tuto-23 \
debian-test-<user>
# +-----------------------------+------------------------------------------------------------------+
# | Field | Value |
# +-----------------------------+------------------------------------------------------------------+
# | OS-DCF:diskConfig | MANUAL |
# | OS-EXT-AZ:availability_zone | |
# | OS-EXT-STS:power_state | NOSTATE |
# | OS-EXT-STS:task_state | scheduling |
# | OS-EXT-STS:vm_state | building |
# | OS-SRV-USG:launched_at | None |
# | OS-SRV-USG:terminated_at | None |
# | accessIPv4 | |
# | accessIPv6 | |
# | addresses | |
# | adminPass | <password> |
# | config_drive | |
# | created | 2024-01-08T15:33:50Z |
# | flavor | medium (03934b65-0ab9-4aae-b51d-60c20cab6090) |
# | hostId | |
# | id | 1cd19416-a84c-48f5-bfb9-9c700be4376d |
# | image | Debian-11-tuto (a6214ad4-7835-48f6-b2bc-15c8104bac08) |
# | key_name | cloudkey-<user> |
# | name | debian-test-<user> |
# | progress | 0 |
# | project_id | 9940e0fb746448f58fa2f638fc4e2de3 |
# | properties | |
# | security_groups | name='4cb51081-b60c-4413-9175-8c2252ce22ac' |
# | status | BUILD |
# | updated | 2024-01-08T15:33:50Z |
# | user_id | <id> |
# | volumes_attached | |
+-----------------------------+------------------------------------------------------------------+
openstack server list
# +--------------------------------------+--------------------+--------+---------------------------+--------------------------+--------+
# | ID | Name | Status | Networks | Image | Flavor |
# +--------------------------------------+--------------------+--------+---------------------------+--------------------------+--------+
# | 1cd19416-a84c-48f5-bfb9-9c700be4376d | debian-test-<user> | ACTIVE | nuage-poc=145.238.137.72 | Debian-11-tuto | medium |
# +--------------------------------------+--------------------+--------+---------------------------+--------------------------+--------+
openstack volume list
# +--------------------------------------+-----------+-----------+------+---------------------------------------------------------------+
# | ID | Name | Status | Size | Attached to |
# +--------------------------------------+-----------+-----------+------+---------------------------------------------------------------+
# | 99530dd7-8c51-4e03-9f59-a2fcaecc09a3 | data-tuto | available | 5 | |
# | 93fc0327-5c1c-42be-9c43-91e9fa767ac8 | | in-use | 64 | Attached to Debian-11-tuto on /dev/vda |
# +--------------------------------------+-----------+-----------+------+---------------------------------------------------------------+
cloudkey-<user>.pub
authorisée sur la passerelle styxcloudkey-<user>.pem
enregistrée sur styxecho "update_cmd=security" >> /etc/cron-apt/config
echo "apply_updates = yes" >> /etc/cron-apt/config
systemctl start cron
cloud-init.target
dans le boot/
monté en rw
) ; sources de données locales (p.e. un disque local) et configuration du réseaudisk_setup
et mounts
(machine en cours de boot).rc.local
) ; installation des logiciels, configuration de plugins (comme puppet) et scripts utilisateurs (runcmd)[ 12.688758] cloud-init[371]: Cloud-init v. 20.4.1 running 'init-local' at Mon, 08 Jan 2024 15:35:53 +0000. Up 12.44 seconds.
[[0;32m OK [0m] Reached target [0;1;39mNetwork[0m.
Starting [0;1;39mInitial cloud-ini��� (metadata service crawler)[0m...
[ 16.746432] cloud-init[582]: Cloud-init v. 20.4.1 running 'init' at Mon, 08 Jan 2024 15:35:57 +0000. Up 16.72 seconds.
[ 16.774039] cloud-init[582]: ci-info: +++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
[ 16.776565] cloud-init[582]: ci-info: +--------+------+------------------------------+---------------+--------+-------------------+
[ 16.778967] cloud-init[582]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |
[ 16.781268] cloud-init[582]: ci-info: +--------+------+------------------------------+---------------+--------+-------------------+
[ 16.783652] cloud-init[582]: ci-info: | ens3 | True | 145.238.137.72 | 255.255.255.0 | global | fa:16:3e:61:17:b0 |
[ 16.785647] cloud-init[582]: ci-info: | ens3 | True | fe80::f816:3eff:fe61:17b0/64 | . | link | fa:16:3e:61:17:b0 |
[ 16.786709] cloud-init[582]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . |
[ 16.787734] cloud-init[582]: ci-info: | lo | True | ::1/128 | . | host | . |
[ 16.788787] cloud-init[582]: ci-info: +--------+------+------------------------------+---------------+--------+-------------------+
[ 16.789819] cloud-init[582]: ci-info: +++++++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++++++
[ 16.790771] cloud-init[582]: ci-info: +-------+-----------------+---------------+-----------------+-----------+-------+
[ 16.791713] cloud-init[582]: ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags |
[ 16.792674] cloud-init[582]: ci-info: +-------+-----------------+---------------+-----------------+-----------+-------+
[ 16.793624] cloud-init[582]: ci-info: | 0 | 0.0.0.0 | 145.238.137.1 | 0.0.0.0 | ens3 | UG |
[ 16.794579] cloud-init[582]: ci-info: | 1 | 145.238.137.0 | 0.0.0.0 | 255.255.255.0 | ens3 | U |
[ 16.795447] cloud-init[582]: ci-info: | 2 | 169.254.169.254 | 145.238.137.2 | 255.255.255.255 | ens3 | UGH |
[ 16.796052] cloud-init[582]: ci-info: +-------+-----------------+---------------+-----------------+-----------+-------+
[ 16.796658] cloud-init[582]: ci-info: +++++++++++++++++++Route IPv6 info+++++++++++++++++++
[ 16.797135] cloud-init[582]: ci-info: +-------+-------------+---------+-----------+-------+
[ 16.797611] cloud-init[582]: ci-info: | Route | Destination | Gateway | Interface | Flags |
[ 16.798102] cloud-init[582]: ci-info: +-------+-------------+---------+-----------+-------+
[ 16.798581] cloud-init[582]: ci-info: | 1 | fe80::/64 | :: | ens3 | U |
[ 16.799069] cloud-init[582]: ci-info: | 3 | multicast | :: | ens3 | U |
[ 16.799554] cloud-init[582]: ci-info: +-------+-------------+---------+-----------+-------+
[ 18.945325] cloud-init[582]: Generating public/private rsa key pair.
[ 18.946540] cloud-init[582]: Your identification has been saved in /etc/ssh/ssh_host_rsa_key
[ 18.947372] cloud-init[582]: Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub
[ 18.948206] cloud-init[582]: The key fingerprint is:
[ 18.948761] cloud-init[582]: SHA256:AdmeHFH3HRMKpd/kvDJqAJdUtcUaLtNIVrgKFJm+ezA root@debian-test-toto
[ 18.949609] cloud-init[582]: The key's randomart image is:
[ 18.950182] cloud-init[582]: +---[RSA 3072]----+
[ 18.950688] cloud-init[582]: | .+=ooo*+.=.|
[ 18.951196] cloud-init[582]: | .=o. =oo+oo|
[ 18.951716] cloud-init[582]: | oooo+.=o+..|
[ 18.952231] cloud-init[582]: | +++ =.+= |
[ 18.952734] cloud-init[582]: | S . o. + |
[ 18.953258] cloud-init[582]: | E o .|
[ 18.953760] cloud-init[582]: | + . o . |
[ 18.954293] cloud-init[582]: | . . .. o |
[ 18.954799] cloud-init[582]: | . .. |
[ 18.955388] cloud-init[582]: +----[SHA256]-----+
[ 18.955900] cloud-init[582]: Generating public/private dsa key pair.
[ 18.956514] cloud-init[582]: Your identification has been saved in /etc/ssh/ssh_host_dsa_key
[ 18.957013] cloud-init[582]: Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub
[ 18.957518] cloud-init[582]: The key fingerprint is:
[ 18.957828] cloud-init[582]: SHA256:yXe044TwmI588LIpyU1IvHVjcBbZVOyn6DQHtIsQaNM root@debian-test-toto
[ 18.958351] cloud-init[582]: The key's randomart image is:
[ 18.958685] cloud-init[582]: +---[DSA 1024]----+
[ 18.958983] cloud-init[582]: | o .=.o. |
[ 18.959275] cloud-init[582]: | + E + o . |
[ 18.959569] cloud-init[582]: | o . =.. o. |
[ 18.959877] cloud-init[582]: | o o.+*oo... |
[ 18.960175] cloud-init[582]: | . +.+So++=o |
[ 18.960472] cloud-init[582]: | o..=..=+o. |
[ 18.960765] cloud-init[582]: | . ++ +o o. |
[ 18.961056] cloud-init[582]: | + .= . |
[ 18.961360] cloud-init[582]: | .o |
[ 18.961656] cloud-init[582]: +----[SHA256]-----+
[ 18.961949] cloud-init[582]: Generating public/private ecdsa key pair.
[ 18.962338] cloud-init[582]: Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key
[ 18.962829] cloud-init[582]: Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub
[ 18.963319] cloud-init[582]: The key fingerprint is:
[ 18.963626] cloud-init[582]: SHA256:crgPPcnM6yNyoIf7zdfYUENnT01Fhifr10UPV7eLyJE root@debian-test-toto
[ 18.964141] cloud-init[582]: The key's randomart image is:
[ 18.964479] cloud-init[582]: +---[ECDSA 256]---+
[ 18.964773] cloud-init[582]: | =X|
[ 18.965069] cloud-init[582]: | . + =.B|
[ 18.965360] cloud-init[582]: | . E o O.|
[ 18.965651] cloud-init[582]: | . + o + +|
[ 18.965944] cloud-init[582]: | o S. + o .o|
[ 18.966249] cloud-init[582]: | . O.. . o|
[ 18.966546] cloud-init[582]: | o .o B= . |
[ 18.966846] cloud-init[582]: | o oooo+oo |
[ 18.967128] cloud-init[582]: | .+.oo++. |
[ 18.967406] cloud-init[582]: +----[SHA256]-----+
[ 18.967684] cloud-init[582]: Generating public/private ed25519 key pair.
[ 18.968065] cloud-init[582]: Your identification has been saved in /etc/ssh/ssh_host_ed25519_key
[ 18.968553] cloud-init[582]: Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub
[ 18.969042] cloud-init[582]: The key fingerprint is:
[ 18.969337] cloud-init[582]: SHA256:+k832rOB8+lA1YyA+AYwLs8o4PtCUJSaj2rIYMIhUWw root@debian-test-toto
[ 18.969862] cloud-init[582]: The key's randomart image is:
[ 18.970184] cloud-init[582]: +--[ED25519 256]--+
[ 18.970467] cloud-init[582]: | +o.o. . .. |
[ 18.970744] cloud-init[582]: |. E. .o . . + |
[ 18.971021] cloud-init[582]: |.*. . o o o |
[ 18.971300] cloud-init[582]: |B. = o . |
[ 18.971582] cloud-init[582]: |=+o o .S . |
[ 18.971859] cloud-init[582]: |+=o . . . |
[ 18.972141] cloud-init[582]: |O. . = + |
[ 18.972428] cloud-init[582]: |o+. . . B.+ |
[ 18.972714] cloud-init[582]: |. .. ..o.*o |
[ 18.972993] cloud-init[582]: +----[SHA256]-----+
[ 19.236732] cloud-init[661]: Cloud-init v. 20.4.1 running 'modules:config' at Mon, 08 Jan 2024 15:36:00 +0000. Up 19.19 seconds.
[ 20.429439] cloud-init[679]: Cloud-init v. 20.4.1 running 'modules:final' at Mon, 08 Jan 2024 15:36:01 +0000. Up 20.38 seconds.
ci-info: ++++++++++++++++++++++++++++++++++Authorized keys from /home/debian/.ssh/authorized_keys for user debian+++++++++++++++++++++++++++++++++++
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+-------------------+
ci-info: | Keytype | Fingerprint (sha256) | Options | Comment |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+-------------------+
ci-info: | ssh-rsa | 95:78:45:10:7c:43:2a:ff:77:68:37:35:f8:58:63:b1:5e:4d:d3:78:8c:04:44:da:d6:f9:37:3f:a1:99:df:cc | - | Generated-by-Nova |
ci-info: +---------+-------------------------------------------------------------------------------------------------+---------+-------------------+
<14>Jan 8 15:36:01 ec2:
<14>Jan 8 15:36:01 ec2: #############################################################
<14>Jan 8 15:36:01 ec2: -----BEGIN SSH HOST KEY FINGERPRINTS-----
<14>Jan 8 15:36:01 ec2: 1024 SHA256:yXe044TwmI588LIpyU1IvHVjcBbZVOyn6DQHtIsQaNM root@debian-test-toto (DSA)
<14>Jan 8 15:36:01 ec2: 256 SHA256:crgPPcnM6yNyoIf7zdfYUENnT01Fhifr10UPV7eLyJE root@debian-test-toto (ECDSA)
<14>Jan 8 15:36:01 ec2: 256 SHA256:+k832rOB8+lA1YyA+AYwLs8o4PtCUJSaj2rIYMIhUWw root@debian-test-toto (ED25519)
<14>Jan 8 15:36:01 ec2: 3072 SHA256:AdmeHFH3HRMKpd/kvDJqAJdUtcUaLtNIVrgKFJm+ezA root@debian-test-toto (RSA)
<14>Jan 8 15:36:01 ec2: -----END SSH HOST KEY FINGERPRINTS-----
<14>Jan 8 15:36:01 ec2: #############################################################
-----BEGIN SSH HOST KEY KEYS-----
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLhPsRuDOe3obJwvV6TUvzVnNy6/FLR6Qxa7sXnFwzSK+BHsJQ0tuGf+HGdJs4W6977v0DlYfJgK0RUnR6UVi/I= root@debian-test-toto
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIueTUylD5dDvBvhozYJ091UsnEOmkjUqHknSp1cr+2b root@debian-test-toto
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDPGfjQsKz4HDn6JsEWiXh7o5HSfTXo4nDoAeJWWundUHYUknoYRAB2nEPMkBn3lOQ6MAyCUS7gHMI/vxV8+2+trXbvNBrlHQvlZ+Inz9zdDfBqlEoqo4RvHPRNoPzmo7t0Oy0VS19hKYpIY4iKUzro8U4aehL8ludntNGF86yENBK3tDCVhUyvTET3P8fckNLOQLqiRM9sRa4RjIcM/mld1w1DSDaRoVJ7BeELTbJo28aAQm8Htz0rmF6rMQk7/85Yj4zKtbI0yq/Ejxnk1L9m/vZclU9stwFgXNon7LXJQ583zadjTpnswK0MWX5gXTZR2wioI/jo8Lzs7h1sifEeJTpYz49bhrafC+TLAvHWgVDP9CACFH1H/TPay0dAdwyoDAQd6Tmn8asUh218yEpOG8WLDeYgYRqlfQVlCbZISHonVFHpGzsSyIVzWLNOeBXF50Wn9iENwCW7Is9sUZVZ2p261gzl26rhMsOxSic4C3CmSnYNOWXSMTG+dnkSJnM= root@debian-test-toto
-----END SSH HOST KEY KEYS-----
[ 20.545550] cloud-init[679]: Cloud-init v. 20.4.1 finished at Mon, 08 Jan 2024 15:36:01 +0000. Datasource DataSourceOpenStackLocal [net,ver=2]. Up 20.54 seconds
[[0;32m OK [0m] Finished [0;1;39mExecute cloud user/final scripts[0m.
[[0;32m OK [0m] Reached target [0;1;39mCloud-init target[0m.
cloud-init.yaml
:
/run/cloud-init/instancedata.json
(fichier supprimé au premier reboot)/var/log/cloud-init.log
et cloud-init-output.log
runcmd
:tuto-24-web
(avec ssh, ping et ouverture de ports web) :openstack server create ... --user-data cloud-init.yaml \
--security-group tuto-24-web ...
curl <IP>
tofu test
)configuration
)state
)configuration
) et l’état (state
)main.tf
: actions (créer un DP, une MV et les associer)variables.tf
: déclaration des variablesterraform.tfvars
: variables liées au fournisseur de cloud (ID OS de la MV,…)*.tf
:
tp-openstack-obs-opentofu
pour effectuer automatiquement :
OS_REGION_NAME
dans LUTH-openrc.sh
:init
:
.terraform
: fichiers du provider.terraform.lock.hcl
: dependency lock file, to record the provider selections it made aboveterraform.tfvars
: modifier les variables liées à l’utilisateur (<user>
, *-id
)#!/bin/bash
# install specific packages
apt-get update
apt-get install -y cvs net-tools cron-apt ca-certificates curl gnupg
# Add Docker's official GPG key:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
# Install Docker
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl stop docker
## Cron for security updates
echo "update_cmd=security" >> /etc/cron-apt/config
echo "apply_updates = yes" >> /etc/cron-apt/config
systemctl start cron
systemctl enable cron
## Docker configuration
# storage driver: overlay on Ceph PD formatted with ext4
mkdir /data
mkfs.ext4 /dev/vdb
mount /dev/vdb /data
mkdir -p /data/docker
cat >> /etc/fstab << EOF
/dev/vdb /data ext4 defaults 0 0
EOF
mkdir -p /etc/docker
cat >> /etc/docker/daemon.json << EOF
{
"storage-driver": "overlay2",
"data-root": "/data/docker"
}
EOF
systemctl start docker
systemctl enable docker
echo ${name_vm}
echo "VM is ready"
plan
:
terraform.plan
: plan de déploiementapply
:
terraform.tfstate
: fichier de statut localterraform.tfstate.backup
: backup, en cas de problème de corruptiontofu apply "terraform.plan"
# openstack_compute_instance_v2.web-server: Creating...
# openstack_compute_instance_v2.web-server: Creation complete after 1m54s [id=...]
# openstack_compute_volume_attach_v2.va_1: Creating...
# openstack_compute_volume_attach_v2.va_1: Creation complete after 7s [id=...]
# Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
# Outputs:
# vm_name = "docker-terra-<user>"
# IP = <IP>
main.tf
, variables.tf
et terraform.tfvars
## terraform.tfvars
# New security group
security_group_id = "tuto-24-ssh"
## variables.tf
variable "security_group_id" {
description = "security group creation"
default = "tuto-24"
}
## main.tf
# security group : create
resource "openstack_networking_secgroup_v2" "secgroup_1" {
name = "${var.security_group_id}"
#name = "tuto-24-terratofu"
description = "Security group for tutorial 24"
}
resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_1" {
direction = "ingress"
ethertype = "IPv4"
protocol = "tcp"
port_range_min = 22
port_range_max = 22
remote_ip_prefix = "0.0.0.0/0"
security_group_id = openstack_networking_secgroup_v2.secgroup_1.id
}
# VM: create a docker server and attach the volume
resource "openstack_compute_instance_v2" "web-server" {
...
security_groups = [openstack_networking_secgroup_v2.secgroup_1.id]
}
C. Cavet - OpenStack - powered by Quarto