Skip to content

Commit

Permalink
Move stuff around + cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
GoodOldJack12 committed Oct 24, 2024
1 parent 4e21f9b commit b02c39c
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 70 deletions.
2 changes: 1 addition & 1 deletion terraform/modules/nfs/variable.tf
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,4 @@ variable "host" {
user = string
is_windows = bool
})
}
}
18 changes: 18 additions & 0 deletions terraform/modules/single_instance/ansible.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,22 @@ locals {
ANSIBLE_HOST_KEY_CHECKING = false
}
ansible_command="timeout 4m ansible-playbook -c ssh -i ${data.openstack_networking_floatingip_v2.public.address},"
}
resource "null_resource" "testconnection" {
count = var.is_windows ? 0 : 1
depends_on = [ openstack_compute_instance_v2.instance_01 ]
triggers = {
user = local.ssh_user
port = local.ports.ssh
ip = data.openstack_networking_floatingip_v2.public.address
}
provisioner "remote-exec" {
connection {
user = self.triggers.user
host = self.triggers.ip
port = self.triggers.port
timeout = "5m"
}
inline = ["echo 'connected!'"]
}
}
49 changes: 1 addition & 48 deletions terraform/modules/single_instance/cloudinit.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ data "cloudinit_config" "main" {
part {
filename = "cloud-config.yaml"
content_type = "text/cloud-config"

content = templatefile("${local.scripts_dir}/cloud-config.yaml", { files = data.local_file.ansible })
content = file("${local.scripts_dir}/cloud-config.yaml")
}
part {
filename = "userscript.sh"
Expand All @@ -21,49 +20,3 @@ data "cloudinit_config" "main" {
}
}
}
locals {
ansible_files = fileset("${local.scripts_dir}/ansible/", "**")
}
data "local_file" "ansible" {
for_each = local.ansible_files
filename = "${local.scripts_dir}/ansible/${each.value}"
}

resource "null_resource" "testconnection" {
count = var.is_windows ? 0 : 1
depends_on = [ openstack_compute_instance_v2.instance_01 ]
triggers = {
user = local.ssh_user
port = local.ports.ssh
ip = data.openstack_networking_floatingip_v2.public.address
}
provisioner "remote-exec" {
connection {
user = self.triggers.user
host = self.triggers.ip
port = self.triggers.port
timeout = "5m"
}
inline = ["echo 'connected!'"]
}
}
resource "null_resource" "nginx" {
count = ( var.nginx_enabled && !var.is_windows) ? 1 : 0
triggers = {
enabled = var.nginx_enabled
scripts_dir = local.scripts_dir
ansible_command = local.ansible_command
environment = jsonencode(local.ansible_env)
}
depends_on = [ null_resource.testconnection ]
provisioner "local-exec" {
environment = jsondecode(self.triggers.environment)
command = "${self.triggers.ansible_command} ${self.triggers.scripts_dir}/ansible/nginx.yaml --extra-vars install=${self.triggers.enabled}"
}
provisioner "local-exec" {
environment = jsondecode(self.triggers.environment)
when = destroy
on_failure = continue
command= "${self.triggers.ansible_command} ${self.triggers.scripts_dir}/ansible/nginx.yaml --extra-vars install=false"
}
}
20 changes: 20 additions & 0 deletions terraform/modules/single_instance/http.tf
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,24 @@ resource "openstack_networking_secgroup_rule_v2" "https" {
remote_ip_prefix = "0.0.0.0/0"
security_group_id = openstack_networking_secgroup_v2.secgroup.id
description = "${data.openstack_identity_auth_scope_v3.scope.user_name}-${var.vm_name}-http"
}
resource "null_resource" "nginx" {
count = ( var.nginx_enabled && !var.is_windows) ? 1 : 0
triggers = {
enabled = var.nginx_enabled
scripts_dir = local.scripts_dir
ansible_command = local.ansible_command
environment = jsonencode(local.ansible_env)
}
depends_on = [ null_resource.testconnection ]
provisioner "local-exec" {
environment = jsondecode(self.triggers.environment)
command = "${self.triggers.ansible_command} ${self.triggers.scripts_dir}/ansible/nginx.yaml --extra-vars install=${self.triggers.enabled}"
}
provisioner "local-exec" {
environment = jsondecode(self.triggers.environment)
when = destroy
on_failure = continue
command= "${self.triggers.ansible_command} ${self.triggers.scripts_dir}/ansible/nginx.yaml --extra-vars install=false"
}
}
21 changes: 0 additions & 21 deletions terraform/modules/single_instance/scripts/cloud-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,5 @@ packages:
- curl
- jq
- nfs-common

# write_files:
# %{ for file in files }
# - encoding: b64
# content: ${ file.content_base64 }
# owner: root:root
# path: /opt/vsc/ansible/${basename(file.filename)}
# permissions: '0770'
# %{ endfor }
# - content: |
# [defaults]
# localhost_warning=False
# collections_on_ansible_version_mismatch=ignore

# [inventory]
# inventory_unparsed_warning=False
# path: /etc/ansible/ansible.cfg
runcmd:
- [mkdir,-p,/opt/vsc/cron]
- [mkdir,-p,/opt/vsc/cron/]

# - ["ansible-galaxy", "collection", "install", "ansible.posix"]
# - ["ansible-galaxy", "collection", "install", "community.general"]

0 comments on commit b02c39c

Please sign in to comment.