Skip to content

Infrastructure-as-a-Service > Projets

Warning

Afin de pouvoir se connecter en SSH sur les instances de machines virtuelles que l'on va déployer, il faut au préalable avoir associé la clef publique d'une paire-de-clefs SSH sur son compte Openstack.

Environment

~/projet-cloud/pkgx.yaml
1
2
3
4
5
env:
  OS_CLOUD: 'resinfo-discotech@stratuslab.production.virtualdata'
  TF_VAR_KEYPAIR_PATH: ~/.ssh/alice.pub
dependencies:
  terraform.io: ^1.5

Paire-de-clefs SSH

~/projet-cloud/resource__openstack_compute_keypair_v2.tf
1
2
3
4
resource openstack_compute_keypair_v2 alice {
    name = "alice"
    public_key = file(pathexpand(var.KEYPAIR_PATH))
}
~/projet-cloud $ terraform apply

Volumes persistants

Tip

Un volume persistant est un stockage dont le cycle de vie est décorrélé de celui de la VM à laquelle il peut être associé à un instant T.
Il peut être utilisé comme disque système ou comme disque de données.

Doc
~/projet-cloud/resource__openstack_blockstorage_volume_v2.tf
1
2
3
4
5
resource openstack_blockstorage_volume_v3 data1_instance1_project1 {
  name        = "data1.instance1.project1.domain.tld"
  description = "DATA Volume"
  size        = 10 # Gio 
}

Equilibreurs de charge

Tip

Un équilibreur de charge permet d'envoyer du trafic vers plusieurs destinations.
On va par exemple s'en servir en frontal d'un orchestrateur Kubernetes.

Doc
~/projet-cloud/resource__openstack_lb_loadbalancer_v2.tf
1
2
3
resource openstack_lb_loadbalancer_v2 lb_instance1_project1 {

}
Doc
~/projet-cloud/resource__openstack_lb_members_v2.tf
1
2
3
4
5
6
7
8
resource openstack_lb_members_v2 mb_members1_project1 {
  pool_id = ""

  member {
    address = 
    protocol_port = 
  }
}