Terraform Course
Terraform Course
cd ~/terraform
connect to cloud
• Step: Log in to your OpenStack Horizon dashboard using the provided URL
(http://ctl.openstack3.ensam-pg0.clemson.cloudlab.us/horizon/auth/login/).
Go to "Project" -> "API Access". Click on "Voir les données d'identification"
(View credentials) or "Télécharger le fichier RC d'OpenStack" (Download
OpenStack RC File). Download both "Fichier OpenStack clouds.yaml" and
"Fichier OpenStack RC" (which is typically admin-openrc.sh).
cp /path/to/downloaded/admin-openrc.sh ~/terraform/ cp
/path/to/downloaded/clouds.yaml ~/terraform/
@IP-de-ctl ctl
9. Apres, taper la commande suivante pour ce connecter au cloud openstack par cli
source admin-openrc.sh
10. Utiliser les commandes suivantes pour afficher les informations sur openstack
openstack image list
Step: Create a file named provider.tf in your ~/terraform directory. This file tells Terraform
how to connect to OpenStack.
terraform {
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
provider "openstack" {
cloud = "openstack"
EOF
12. Test Terraform Initialization
terraform init
security_groups = ["default"]
network {
EOF
terraform validate
terraform plan
terraform apply
pool = "ext-net"
floating_ip = openstack_networking_floatingip_v2.myvm_fip.address
EOF
terraform apply
name = "my-keypair"
}
# IMPORTANT: You'll need to modify the existing
openstack_compute_instance_v2 block
# It's generally better to edit the file directly with a text editor.
# name = "yourname-VM1"
# image_id = "ACTUAL_IMAGE_ID_FROM_LIST"
# flavor_id = "ACTUAL_FLAVOR_ID_FROM_LIST"
# security_groups = ["default"]
# network {
# uuid = "ACTUAL_NETWORK_UUID_FROM_LIST"
# }
#}
EOF
name = "my-volume"
size = 10
}
resource "openstack_compute_volume_attach_v2" "volumes" {
volume_id = openstack_blockstorage_volume_v2.my-volume.id
EOF
terraform apply
terraform destroy
#!/bin/bash
apt-get update
EOF
name = "vm2"
security_groups = ["default"]
user_data = file("bootstrap.sh") # Execute the script [cite: 18]
network {
pool = "ext-net"
floating_ip = openstack_networking_floatingip_v2.vm2_fip.address
instance_id = openstack_compute_instance_v2.vm2.id
EOF
terraform apply
terraform destroy