Infra: Add terraform no-color output.
[csit.git] / resources / libraries / bash / function / terraform.sh
index 209227a..5313b62 100644 (file)
@@ -34,7 +34,7 @@ function terraform_apply () {
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
     export TF_LOG=INFO
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
     export TF_LOG=INFO
-    terraform apply -auto-approve  || die "Failed to run terraform apply!"
+    terraform apply -no-color -auto-approve  || die "Terraform apply failed!"
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
@@ -57,7 +57,7 @@ function terraform_destroy () {
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
     export TF_LOG=INFO
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
     export TF_LOG=INFO
-    terraform destroy -auto-approve || die "Failed to run terraform destroy!"
+    terraform destroy -auto-approve -no-color || die "Terraform destroy failed!"
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
@@ -75,13 +75,31 @@ function terraform_init () {
     set -exuo pipefail
 
     if ! installed terraform; then
     set -exuo pipefail
 
     if ! installed terraform; then
-        die "Please install terraform!"
+        curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
+        os="$(lsb_release -cs)" || die "Failed to get OS release!"
+        repo="deb [arch=amd64] https://apt.releases.hashicorp.com ${os} main"
+        sudo apt-add-repository "${repo}" || die "Failed to add repo!"
+        apt update -y
+        apt install -y terraform
+        #die "Please install terraform!"
     fi
 
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
     fi
 
     pushd "${CSIT_DIR}"/fdio.infra.terraform || die "Pushd failed!"
     pushd "${NODENESS}_${FLAVOR}_c5n" || die "Pushd failed!"
+
+    plugin_url="https://github.com/radekg/terraform-provisioner-ansible/"
+    plugin_url+="releases/download/v2.5.0/"
+    plugin_url+="terraform-provisioner-ansible-linux-amd64_v2.5.0"
+    plugin_dir="${HOME}/.terraform.d/plugins/"
+    plugin_path+="${plugin_dir}terraform-provisioner-ansible_v2.5.0"
+
+    mkdir -p "${plugin_dir}" || die "Failed to create dir!"
+    wget -O "${plugin_path}" "${plugin_url}" || die "Failed to download plugin!"
+    chmod +x "${plugin_path}" || die "Failed to add execute rights!"
+
     export TF_LOG=INFO
     terraform init || die "Failed to run terraform init!"
     export TF_LOG=INFO
     terraform init || die "Failed to run terraform init!"
+
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }
     popd || die "Popd failed!"
     popd || die "Popd failed!"
 }