From 7ecab07fbd8126dbb525018c2bb2bb4d3b07647b Mon Sep 17 00:00:00 2001 From: jerome Date: Tue, 13 Sep 2022 01:27:25 +0200 Subject: update tag 0.2 --- createvm | 24 ++++++++++++------------ id_rsa.pub | 2 +- main.tf | 9 +++++---- network_config | 24 ++++++++++++++++++++++++ 4 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 network_config diff --git a/createvm b/createvm index 9c193fa..4b71298 100755 --- a/createvm +++ b/createvm @@ -8,21 +8,21 @@ count=1 # Déploiment terraform terraform init -reconfigure terraform plan -terraform apply -var "nb=$count" -var "start=$index" -auto-approve +terraform apply -var "nb=$count" -var "start=$index" -auto-approve 2>/dev/null echo -# On copie notre clé publique et on met à jour le hostname des machines +# On copie notre clé publique, on met à jour le hostname des machines, et on fixe les adresses ip données par le dhcp for ((i=$index;i<$((index+count));i++));do - vm=ubuntu$i - while vboxmanage guestproperty get $vm /VirtualBox/GuestInfo/Net/0/V4/IP |grep -q "No value"; do - sleep 5 - echo "Wait VM until ready..." - done - echo -e "\n [$vm ip] $(vboxmanage guestproperty get $vm /VirtualBox/GuestInfo/Net/0/V4/IP)" - vboxmanage guestcontrol $vm --username vagrant --password vagrant copyto id_rsa.pub /home/vagrant/.ssh/authorized_keys - vboxmanage guestcontrol $vm --username vagrant --password vagrant copyto set-hostname /home/vagrant/set-hostname - vboxmanage guestcontrol $vm --username vagrant --password vagrant run /usr/bin/bash /home/vagrant/set-hostname $vm + vm=ubuntu$i + while vboxmanage guestproperty get $vm /VirtualBox/GuestInfo/Net/0/V4/IP |grep -q "No value"; do + sleep 5 + echo "Wait VM until ready..." + done + echo -e "\n [$vm ip] $(vboxmanage guestproperty get $vm /VirtualBox/GuestInfo/Net/0/V4/IP)" + ip_addr=$(vboxmanage guestproperty get $vm /VirtualBox/GuestInfo/Net/0/V4/IP|cut -d ':' -f2) + vboxmanage guestcontrol $vm --username vagrant --password vagrant copyto id_rsa.pub /home/vagrant/.ssh/authorized_keys + vboxmanage guestcontrol $vm --username vagrant --password vagrant copyto network_config /home/vagrant/ + vboxmanage guestcontrol $vm --username vagrant --password vagrant run /usr/bin/bash /home/vagrant/network_config $vm $ip_addr done echo - diff --git a/id_rsa.pub b/id_rsa.pub index 27bb26f..cebd028 100644 --- a/id_rsa.pub +++ b/id_rsa.pub @@ -1 +1 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIY4PbR32blXvSPdTY1f9iou1/gFDf57eHOATSVBYvJC1AxGpE+1JTU1Brl9rTZTbIEtn8H+8lA1L0VQVCE9kPCD+Fg7QJEYGH9B0a5SgwuBGzcUCwhTn5zlDJN5dCD4yYOTX1Xtgp7bXsuFlLJWRLj98sMnF001UbXJeB9z99JcpcO7ISg09E9UEvyhUgRmMOTEsSbeLDMWMuevSelybWj3l46Q1vT5/LnOFwbm3TgvJumSE738XinEeZeyns11OQ/8uzJj+d+idcivVytCOJJWrh4NtW/LkU9M/NYKqT7a/N4rNmc1Nlz/Jd5alYMQjjdi81YpIIXYt2X1Jv+6v56RfuvGup4X9Q27lP/pGKYfWtPx6QfDAQxGNj1mEv1lPAMNe2JU/YFmJQEDYSCmxIdljHtNjNcXE8u530+Fcri4bXxMMGsUdqXL2KKcoNoun0LGSZu5rGqeGcMtX5WiYzqqQWNFnMV8AkNDvENJ2Jh9IHBjy68hnNOgHN61DQHx8= jerome@kali +--- fichier à remplacer par votre clef ssh publique --- diff --git a/main.tf b/main.tf index 624c7e4..9aad2bc 100644 --- a/main.tf +++ b/main.tf @@ -7,6 +7,7 @@ terraform { } } + resource "virtualbox_vm" "node" { # count = 1 # name = format("ubuntu%01d", count.index + 3) @@ -14,12 +15,12 @@ resource "virtualbox_vm" "node" { count = var.nb name = format("ubuntu%01d", count.index + var.start) image = "https://app.vagrantup.com/ubuntu/boxes/focal64/versions/20220905.0.0/providers/virtualbox.box" - cpus = 2 + cpus = 4 memory = "2048 mib" network_adapter { type = "bridged" - host_interface = "enp1s0" + host_interface = "ens160" } } @@ -27,8 +28,8 @@ resource "virtualbox_vm" "node" { #output "ip_addresses" { # value = { # for vm in virtualbox_vm.node.*: -# vm.name => vm.network_adapter.0.ipv4_address -# } +# vm.name => vm.network_adapter.0.ipv4_address +# } #} ######################### diff --git a/network_config b/network_config new file mode 100644 index 0000000..e1233f1 --- /dev/null +++ b/network_config @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# à adapter à votre réseau + +sudo hostnamectl set-hostname $1 + +sudo bash -c "cat > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg << EOF +network: {config: disabled} +EOF" + +sudo bash -c "cat > /etc/netplan/50-cloud-init.yaml << EOF +network: + ethernets: + enp0s17: + dhcp4: false + addresses: [$2/24] + gateway4: 172.19.30.254 + nameservers: + addresses: [172.19.30.128,172.19.30.254] + version: 2 +EOF" + +sudo netplan apply + +rm $0 -- cgit v1.2.3