From 640a17c3b206b2a572c91fc2670131be2b5c9eee Mon Sep 17 00:00:00 2001 From: Andrea Dell'Amico Date: Mon, 22 Jan 2024 12:22:30 +0100 Subject: [PATCH] Un po' di cleanup. --- modules/liferay/liferay-outputs.tf | 11 -- modules/liferay/liferay-variables.tf | 28 --- modules/liferay/liferay.tf | 89 ---------- modules/liferay/terraform-provider.tf | 29 --- modules/smart-executor/smart-executor.tf | 165 ------------------ .../variables-smart-executor.tf | 44 ----- .../{el7.sh => el.sh} | 2 +- s2i2s_openstack_vm_data_scripts/ubuntu1804.sh | 22 --- s2i2s_openstack_vm_data_scripts/ubuntu2204.sh | 2 +- 9 files changed, 2 insertions(+), 390 deletions(-) delete mode 100644 modules/liferay/liferay-outputs.tf delete mode 100644 modules/liferay/liferay-variables.tf delete mode 100644 modules/liferay/liferay.tf delete mode 100644 modules/liferay/terraform-provider.tf delete mode 100644 modules/smart-executor/smart-executor.tf delete mode 100644 modules/smart-executor/variables-smart-executor.tf rename s2i2s_openstack_vm_data_scripts/{el7.sh => el.sh} (78%) delete mode 100644 s2i2s_openstack_vm_data_scripts/ubuntu1804.sh diff --git a/modules/liferay/liferay-outputs.tf b/modules/liferay/liferay-outputs.tf deleted file mode 100644 index a1805ab..0000000 --- a/modules/liferay/liferay-outputs.tf +++ /dev/null @@ -1,11 +0,0 @@ -output "liferay_data" { - value = var.liferay_data -} - -output "liferay_ip_addrs" { - value = var.liferay_ip_addrs -} - -output "liferay_recordsets" { - value = var.liferay_recordsets -} \ No newline at end of file diff --git a/modules/liferay/liferay-variables.tf b/modules/liferay/liferay-variables.tf deleted file mode 100644 index a7baa62..0000000 --- a/modules/liferay/liferay-variables.tf +++ /dev/null @@ -1,28 +0,0 @@ -variable "liferay_data" { - type = map(string) - default = { - affinity_policy = "soft-anti-affinity" - srv_name = "lr62" - vm_count = 1 - vm_flavor = "m1.large" - boot_vol_size = 30 - } -} - -variable "liferay_ip_addrs" { - type = list(string) - default = [] -} - -variable "liferay_recordsets" { - type = map(object({ - name = string - description = string - })) - default = { - liferay_dns_record = { - name = "", - description = "" - } - } -} diff --git a/modules/liferay/liferay.tf b/modules/liferay/liferay.tf deleted file mode 100644 index b508a5a..0000000 --- a/modules/liferay/liferay.tf +++ /dev/null @@ -1,89 +0,0 @@ -# -# Liferay nodes -# -# -# Security group -# -resource "openstack_networking_secgroup_v2" "liferay_cluster_traffic" { - name = "liferay_cluster_traffic" - delete_default_rules = "true" - description = "Traffic between the Liferay cluster nodes" -} - -resource "openstack_networking_secgroup_rule_v2" "traffic_between_liferay_nodes" { - count = var.liferay_data.vm_count - security_group_id = openstack_networking_secgroup_v2.liferay_cluster_traffic.id - description = "Traffic between liferay nodes" - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - remote_ip_prefix = join("/", [element(var.liferay_ip_addrs.*, count.index), "32"]) -} - -# -# Object storage container -# -# Creating object bucket to store avatars -resource "openstack_objectstorage_container_v1" "liferay" { - name = "liferay-data" - versioning = true -} -# -# Server group -# -resource "openstack_compute_servergroup_v2" "liferay" { - name = "liferay" - policies = [var.liferay_data.affinity_policy] -} - -# Instance(s) -resource "openstack_compute_instance_v2" "liferay" { - count = var.liferay_data.vm_count - name = format("%s-%02d", var.liferay_data.srv_name, count.index + 1) - availability_zone_hints = module.common_variables.availability_zones_names.availability_zone_no_gpu - flavor_name = var.liferay_data.vm_flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [data.terraform_remote_state.privnet_dns_router.outputs.default_security_group_name, openstack_networking_secgroup_v2.liferay_cluster_traffic.name, data.terraform_remote_state.privnet_dns_router.outputs.security_group_list.http_and_https_from_the_load_balancers, "restricted_web_service"] - scheduler_hints { - group = openstack_compute_servergroup_v2.liferay.id - } - block_device { - uuid = data.terraform_remote_state.privnet_dns_router.outputs.ubuntu_1804.uuid - source_type = "image" - volume_size = var.liferay_data.boot_vol_size - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - - network { - name = data.terraform_remote_state.privnet_dns_router.outputs.main_private_network.name - fixed_ip_v4 = var.liferay_ip_addrs.* [count.index] - } - network { - name = module.common_variables.shared_postgresql_server_data.network_name - } - user_data = file("${data.terraform_remote_state.privnet_dns_router.outputs.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} - -resource "openstack_dns_recordset_v2" "cdn_dns_recordset" { - for_each = var.liferay_recordsets - zone_id = data.terraform_remote_state.privnet_dns_router.outputs.dns_zone_id - name = each.value.name - description = each.value.description - ttl = 8600 - type = "CNAME" - records = [local.cname_target] -} - -locals { - cname_target = "main-lb.${data.terraform_remote_state.privnet_dns_router.outputs.dns_zone.zone_name}" -} \ No newline at end of file diff --git a/modules/liferay/terraform-provider.tf b/modules/liferay/terraform-provider.tf deleted file mode 100644 index f3678ce..0000000 --- a/modules/liferay/terraform-provider.tf +++ /dev/null @@ -1,29 +0,0 @@ -# Define required providers -terraform { - required_version = ">= 0.14.0" - required_providers { - openstack = { - source = "terraform-provider-openstack/openstack" - version = "~> 1.53.0" - } - } -} - -data "terraform_remote_state" "privnet_dns_router" { - backend = "local" - - config = { - path = "../project-setup/terraform.tfstate" - } -} - -# SSH settings -module "ssh_settings" { - source = "../../modules/ssh-key-ref" -} - -# Global variables (constants, really) -module "common_variables" { - source = "../../modules/common_variables" -} - diff --git a/modules/smart-executor/smart-executor.tf b/modules/smart-executor/smart-executor.tf deleted file mode 100644 index 1aa3e69..0000000 --- a/modules/smart-executor/smart-executor.tf +++ /dev/null @@ -1,165 +0,0 @@ -# Accounting dashboard harvester -resource "openstack_compute_instance_v2" "accounting_dashboard_harvester" { - name = var.accounting_dashboard_harvester.name - availability_zone_hints = var.availability_zones_names.availability_zone_no_gpu - flavor_name = var.accounting_dashboard_harvester.flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [var.default_security_group_name] - block_device { - uuid = var.ubuntu_1804.uuid - source_type = "image" - volume_size = 10 - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - network { - name = var.main_private_network.name - } - network { - name = var.networks_list.orientdb_se - } - network { - name = var.networks_list.shared_postgresql - } - network { - name = var.networks_list.timescaledb - } - user_data = file("${var.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} - -# Resource checker -resource "openstack_compute_instance_v2" "resource_checker" { - name = var.resource_checker.name - availability_zone_hints = var.availability_zones_names.availability_zone_no_gpu - flavor_name = var.resource_checker.flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [var.default_security_group_name] - block_device { - uuid = var.ubuntu_1804.uuid - source_type = "image" - volume_size = 10 - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - network { - name = var.main_private_network.name - } - network { - name = var.networks_list.orientdb_se - } - user_data = file("${var.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} - -# Social data indexer -resource "openstack_compute_instance_v2" "social_data_indexer" { - name = var.social_data_indexer.name - availability_zone_hints = var.availability_zones_names.availability_zone_no_gpu - flavor_name = var.social_data_indexer.flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [var.default_security_group_name] - block_device { - uuid = var.ubuntu_1804.uuid - source_type = "image" - volume_size = 10 - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - network { - name = var.main_private_network.name - } - network { - name = var.networks_list.orientdb_se - } - user_data = file("${var.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} - -# Accounting insert storage -resource "openstack_compute_instance_v2" "accounting_insert_storage" { - name = var.accounting_insert_storage.name - availability_zone_hints = var.availability_zones_names.availability_zone_no_gpu - flavor_name = var.accounting_insert_storage.flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [var.default_security_group_name] - block_device { - uuid = var.ubuntu_1804.uuid - source_type = "image" - volume_size = 10 - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - network { - name = var.main_private_network.name - } - network { - name = var.networks_list.orientdb_se - } - user_data = file("${var.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} - -# Accounting aggregator -resource "openstack_compute_instance_v2" "accounting_aggregator" { - name = var.accounting_aggregator.name - availability_zone_hints = var.availability_zones_names.availability_zone_no_gpu - flavor_name = var.accounting_aggregator.flavor - key_pair = module.ssh_settings.ssh_key_name - security_groups = [var.default_security_group_name] - block_device { - uuid = var.ubuntu_1804.uuid - source_type = "image" - volume_size = 10 - boot_index = 0 - destination_type = "volume" - delete_on_termination = false - } - network { - name = var.main_private_network.name - } - network { - name = var.networks_list.orientdb_se - } - user_data = file("${var.ubuntu1804_data_file}") - # Do not replace the instance when the ssh key changes - lifecycle { - ignore_changes = [ - # Ignore changes to tags, e.g. because a management agent - # updates these based on some ruleset managed elsewhere. - key_pair, user_data, network - ] - } -} diff --git a/modules/smart-executor/variables-smart-executor.tf b/modules/smart-executor/variables-smart-executor.tf deleted file mode 100644 index dd149bc..0000000 --- a/modules/smart-executor/variables-smart-executor.tf +++ /dev/null @@ -1,44 +0,0 @@ -variable "accounting_dashboard_harvester" { - type = map(string) - default = { - name = "accounting-dashboard-harvester-se-plugin" - description = "Accounting Dashboard Harvester SE plugin" - flavor = "m1.medium" - } -} - -variable "resource_checker" { - type = map(string) - default = { - name = "resource-checker-se-plugin" - description = "Resource checker SE plugin" - flavor = "c1.small" - } -} - -variable "social_data_indexer" { - type = map(string) - default = { - name = "social-data-indexer-se-plugin" - description = "Social data indexer SE plugin" - flavor = "c1.small" - } -} - -variable "accounting_insert_storage" { - type = map(string) - default = { - name = "accounting-insert-storage-se-plugin" - description = "Accounting insert storage SE plugin" - flavor = "c1.small" - } -} - -variable "accounting_aggregator" { - type = map(string) - default = { - name = "accounting-aggregator-se-plugin" - description = "Accounting aggregator SE plugin" - flavor = "m1.medium" - } -} diff --git a/s2i2s_openstack_vm_data_scripts/el7.sh b/s2i2s_openstack_vm_data_scripts/el.sh similarity index 78% rename from s2i2s_openstack_vm_data_scripts/el7.sh rename to s2i2s_openstack_vm_data_scripts/el.sh index cfbcf3c..57ce4b4 100644 --- a/s2i2s_openstack_vm_data_scripts/el7.sh +++ b/s2i2s_openstack_vm_data_scripts/el.sh @@ -11,7 +11,7 @@ yum -y install python policycoreutils-python mkdir /srv/ansible/.ssh echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzcHuDU7PgJwz34AsVG0E2+ZRx17ZKW1uDEGABNk3Z60/c9LTwWKPj6kcIRy6RzFJI5X+IgPJnYouXVmJsIWjVL8IRk8fP1ffJC6Fyf6H7+fCxu/Wwed5OoOCvKeZ0bEmJ1tlXFM6+EnxKqLCvz3fsNy8e4WKMnpS1hT8K6YB7PMjt60S3wOaxds1Lv4NmmgnfGM5uZFYrZCx1/GJCzNSh7AEEEUIVQ1B8xmXbet7whNiwDmiOnXSlt38dkIYT8kNMuRCj/r9wPr7FmoUCOFzUVXTcnuYagKyURrZ8QDyHbK6XQLYXgvCz/lWoErGFbDqpmBHHyvKSeLPxYfJpWJ70w== tom@tom" > /srv/ansible/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ9n6B+J5S7NPnwjejPC2WrvcRzC07WPnAoQ7ZHZ0Mv9JakyWItswzI3Drz/zI0mCamyuye+9dWz9v/ZRwUfBobVyXuptRaZIwxlMC/KsTZofpp3RHOBTteZ4/VM0VhEeiOHu+GuzNE0fRB2gsusWeMMae2cq4TjVAOMcQmJX496L703Smc14gFrP8y/P9jbC5HquuVnPR29PsW4mHidPmjdKkO7QmDfFAj44pEUGeInYOJe708C03NCpsjHw8AVdAJ6Pf16EOdDH+z8D6CByVO3s8UT0HJ85BRoIy6254/hmYLzyd/eRnCXHS/dke+ivrlA3XxG4+DmqjuJR/Jpfx adellam@semovente" >> /srv/ansible/.ssh/authorized_keys -echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvkwppFE+K5MjKqtkGJN63wkcwaqZG4HkgPqMSWrXmCfDPJ3FxjDHV9aQRJYVKZObc9+SsFc9IYXwB2A8FI0XwPkCH2hfFKDVNO4TktO/SrM+4tXbEfEDWX/PduBQLootYaMEVj++p2+s/mxVnxTAMzsR4txC9tkWR4JO4VJ2cpZfM8po4p1wA4YteW6Oiv0PqUEsLtPtBHGuCgovo8WS+qxcxpeBBnewEssgis2dzDSqx5HUmaOETAxxEHflapHWQLum0JjvXsG5jlf9jL44XJPkcHXAYk3gnhtyM0moJpUya+GX7+ttfWWvwxs0tYNDXNMRn91r1hMLWmas4D+T/Q== rcirillo@rcirillo-cnr" >> /srv/ansible/.ssh/authorized_keys +echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5al6w7Lsm2hVP5Ak3y1YVuqB02vrCvlNQSjF3+y4U/KwSsLDk0EtK6cZQuplehVK+XkdiIxECTokyvwulfHSMa25p8l4bjUA44TTdeWlHjcFgt2SFXbSeAY/XeoukKlafccKqVF0ySrKIIQj94oWIB15qIZMSg8HVIU6XtpHjlF2w8K+YrzmDnU3hs+f1bHp9gi5Q2JKVqm3ZIiUIvb1bYGNq7rdMf0xjAn1ZGuvmEIRSwqR8YMtyIHnrPsMh+sdnV3PosyUQRt/b74Df/ufvJ2t9QBlOprrCQxWibcjYktDOBP4AT5he3giXjz51FJqx7hEj2ISVSiwln5G/cPor franca@Mac.local" >> /srv/ansible/.ssh/authorized_keys /bin/chown -R ansible:ansible /srv/ansible /bin/chmod 700 /srv/ansible/.ssh mkdir -p /etc/sudoers.d diff --git a/s2i2s_openstack_vm_data_scripts/ubuntu1804.sh b/s2i2s_openstack_vm_data_scripts/ubuntu1804.sh deleted file mode 100644 index fbc98c7..0000000 --- a/s2i2s_openstack_vm_data_scripts/ubuntu1804.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -apt-get update -y -# Not needed anymore on Ubuntu 20.04+ -apt-get install -y python - -/usr/sbin/adduser --system --home /srv/ansible --shell /bin/bash --gecos "Used for the Ansible provisioning tasks" --group ansible - -# SSH keys of users authorized to execute ansible playbooks. -# The ones in the example belong to Andrea Dell'Amico and Tommaso Piccioli. -# Feel free to add yours if you are entitled to run the ansible provisioning on that server - -mkdir /srv/ansible/.ssh -echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzcHuDU7PgJwz34AsVG0E2+ZRx17ZKW1uDEGABNk3Z60/c9LTwWKPj6kcIRy6RzFJI5X+IgPJnYouXVmJsIWjVL8IRk8fP1ffJC6Fyf6H7+fCxu/Wwed5OoOCvKeZ0bEmJ1tlXFM6+EnxKqLCvz3fsNy8e4WKMnpS1hT8K6YB7PMjt60S3wOaxds1Lv4NmmgnfGM5uZFYrZCx1/GJCzNSh7AEEEUIVQ1B8xmXbet7whNiwDmiOnXSlt38dkIYT8kNMuRCj/r9wPr7FmoUCOFzUVXTcnuYagKyURrZ8QDyHbK6XQLYXgvCz/lWoErGFbDqpmBHHyvKSeLPxYfJpWJ70w== tom@tom" > /srv/ansible/.ssh/authorized_keys -echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ9n6B+J5S7NPnwjejPC2WrvcRzC07WPnAoQ7ZHZ0Mv9JakyWItswzI3Drz/zI0mCamyuye+9dWz9v/ZRwUfBobVyXuptRaZIwxlMC/KsTZofpp3RHOBTteZ4/VM0VhEeiOHu+GuzNE0fRB2gsusWeMMae2cq4TjVAOMcQmJX496L703Smc14gFrP8y/P9jbC5HquuVnPR29PsW4mHidPmjdKkO7QmDfFAj44pEUGeInYOJe708C03NCpsjHw8AVdAJ6Pf16EOdDH+z8D6CByVO3s8UT0HJ85BRoIy6254/hmYLzyd/eRnCXHS/dke+ivrlA3XxG4+DmqjuJR/Jpfx adellam@semovente" >> /srv/ansible/.ssh/authorized_keys -echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvkwppFE+K5MjKqtkGJN63wkcwaqZG4HkgPqMSWrXmCfDPJ3FxjDHV9aQRJYVKZObc9+SsFc9IYXwB2A8FI0XwPkCH2hfFKDVNO4TktO/SrM+4tXbEfEDWX/PduBQLootYaMEVj++p2+s/mxVnxTAMzsR4txC9tkWR4JO4VJ2cpZfM8po4p1wA4YteW6Oiv0PqUEsLtPtBHGuCgovo8WS+qxcxpeBBnewEssgis2dzDSqx5HUmaOETAxxEHflapHWQLum0JjvXsG5jlf9jL44XJPkcHXAYk3gnhtyM0moJpUya+GX7+ttfWWvwxs0tYNDXNMRn91r1hMLWmas4D+T/Q== rcirillo@rcirillo-cnr" >> /srv/ansible/.ssh/authorized_keys -/bin/chown -R ansible:ansible /srv/ansible -/bin/chmod 700 /srv/ansible/.ssh -mkdir -p /etc/sudoers.d -echo "ansible ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ansible-user -/bin/chmod 600 /etc/sudoers.d/ansible-user - diff --git a/s2i2s_openstack_vm_data_scripts/ubuntu2204.sh b/s2i2s_openstack_vm_data_scripts/ubuntu2204.sh index 2ce98b8..9a34ff4 100644 --- a/s2i2s_openstack_vm_data_scripts/ubuntu2204.sh +++ b/s2i2s_openstack_vm_data_scripts/ubuntu2204.sh @@ -9,7 +9,7 @@ mkdir /srv/ansible/.ssh echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzcHuDU7PgJwz34AsVG0E2+ZRx17ZKW1uDEGABNk3Z60/c9LTwWKPj6kcIRy6RzFJI5X+IgPJnYouXVmJsIWjVL8IRk8fP1ffJC6Fyf6H7+fCxu/Wwed5OoOCvKeZ0bEmJ1tlXFM6+EnxKqLCvz3fsNy8e4WKMnpS1hT8K6YB7PMjt60S3wOaxds1Lv4NmmgnfGM5uZFYrZCx1/GJCzNSh7AEEEUIVQ1B8xmXbet7whNiwDmiOnXSlt38dkIYT8kNMuRCj/r9wPr7FmoUCOFzUVXTcnuYagKyURrZ8QDyHbK6XQLYXgvCz/lWoErGFbDqpmBHHyvKSeLPxYfJpWJ70w== tom@tom" > /srv/ansible/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ9n6B+J5S7NPnwjejPC2WrvcRzC07WPnAoQ7ZHZ0Mv9JakyWItswzI3Drz/zI0mCamyuye+9dWz9v/ZRwUfBobVyXuptRaZIwxlMC/KsTZofpp3RHOBTteZ4/VM0VhEeiOHu+GuzNE0fRB2gsusWeMMae2cq4TjVAOMcQmJX496L703Smc14gFrP8y/P9jbC5HquuVnPR29PsW4mHidPmjdKkO7QmDfFAj44pEUGeInYOJe708C03NCpsjHw8AVdAJ6Pf16EOdDH+z8D6CByVO3s8UT0HJ85BRoIy6254/hmYLzyd/eRnCXHS/dke+ivrlA3XxG4+DmqjuJR/Jpfx adellam@semovente" >> /srv/ansible/.ssh/authorized_keys -echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvkwppFE+K5MjKqtkGJN63wkcwaqZG4HkgPqMSWrXmCfDPJ3FxjDHV9aQRJYVKZObc9+SsFc9IYXwB2A8FI0XwPkCH2hfFKDVNO4TktO/SrM+4tXbEfEDWX/PduBQLootYaMEVj++p2+s/mxVnxTAMzsR4txC9tkWR4JO4VJ2cpZfM8po4p1wA4YteW6Oiv0PqUEsLtPtBHGuCgovo8WS+qxcxpeBBnewEssgis2dzDSqx5HUmaOETAxxEHflapHWQLum0JjvXsG5jlf9jL44XJPkcHXAYk3gnhtyM0moJpUya+GX7+ttfWWvwxs0tYNDXNMRn91r1hMLWmas4D+T/Q== rcirillo@rcirillo-cnr" >> /srv/ansible/.ssh/authorized_keys +echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5al6w7Lsm2hVP5Ak3y1YVuqB02vrCvlNQSjF3+y4U/KwSsLDk0EtK6cZQuplehVK+XkdiIxECTokyvwulfHSMa25p8l4bjUA44TTdeWlHjcFgt2SFXbSeAY/XeoukKlafccKqVF0ySrKIIQj94oWIB15qIZMSg8HVIU6XtpHjlF2w8K+YrzmDnU3hs+f1bHp9gi5Q2JKVqm3ZIiUIvb1bYGNq7rdMf0xjAn1ZGuvmEIRSwqR8YMtyIHnrPsMh+sdnV3PosyUQRt/b74Df/ufvJ2t9QBlOprrCQxWibcjYktDOBP4AT5he3giXjz51FJqx7hEj2ISVSiwln5G/cPor franca@Mac.local" >> /srv/ansible/.ssh/authorized_keys /bin/chown -R ansible:ansible /srv/ansible /bin/chmod 700 /srv/ansible/.ssh mkdir -p /etc/sudoers.d