Compare commits
No commits in common. "b3607608558cb0b71d96b662df21f16e11acd728" and "02e13dfb001392509f1787f397330dbbc19f97ed" have entirely different histories.
b360760855
...
02e13dfb00
|
@ -1,5 +0,0 @@
|
|||
location /fabrica/ {
|
||||
alias %%ROOT%%/images/;
|
||||
autoindex on;
|
||||
allow all;
|
||||
}
|
|
@ -2,4 +2,3 @@
|
|||
images/
|
||||
packer_cache/
|
||||
*inventory
|
||||
*~
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIID+DCCAuCgAwIBAgIEYFM0nzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMC
|
||||
RlIxLzAtBgNVBAoTJk1pbmlzdGVyZSBFZHVjYXRpb24gTmF0aW9uYWxlIChNRU5F
|
||||
U1IpMRQwEgYDVQQLEwsxMTAgMDQzIDAxNTERMA8GA1UECxMIYWMtZGlqb24xGTAX
|
||||
BgNVBAMTEENBLWlnb3IuZW9sZS5sYW4wHhcNMjEwMzE4MTEwODE3WhcNMjQwMzE4
|
||||
MTEwODE3WjB/MQswCQYDVQQGEwJGUjEvMC0GA1UEChMmTWluaXN0ZXJlIEVkdWNh
|
||||
dGlvbiBOYXRpb25hbGUgKE1FTkVTUikxFDASBgNVBAsTCzExMCAwNDMgMDE1MREw
|
||||
DwYDVQQLEwhhYy1kaWpvbjEWMBQGA1UEAxMNaWdvci5lb2xlLmxhbjCCASIwDQYJ
|
||||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvH59l40rzyhHvqZGPytMfXNFIc5hr8
|
||||
Da6jz2G3KCHTFaHYMw6un3OSB40KwxAc6tBk3sclWFYL/4Bp0gCaYPbL5gPcgxuc
|
||||
kakJ6wqv/LdCXrUfOb7w8+J/QX/UgJmTKsFT9cncBFQM4PsqLXGNzOasWZ18Tpj7
|
||||
D544GUrdFQJTseC/nS0BHAWhYol7mDnXNyuCLZr3wJj7X3ILb1KxrBLGp1J1IRFf
|
||||
kQxOIrL7NzZWe8PeTo8ZHYlGBDfwt5vDknC0mxShK5GZtxjrOoTDzO1fsXZsDtM+
|
||||
YAUNmGDP2qVFW/7iGp8cwOG/T6/nPxgTBzX3hdJI2nsboBfhqcypIjcCAwEAAaN4
|
||||
MHYwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
|
||||
CCsGAQUFBwMCMBEGCWCGSAGG+EIBAQQEAwIGQDAQBglghkgBhvhCAQ0EAxYBIDAY
|
||||
BgNVHREEETAPgg1pZ29yLmVvbGUubGFuMA0GCSqGSIb3DQEBCwUAA4IBAQA83178
|
||||
eR/y5xo93GTebRQ31JFcaD2NTkuHivU7HZUxzCyavSwtYIMaCFCPUaK/62PVRQ12
|
||||
b2mk5O3nBwFop01Tz1u8jBe2f2tz/oosR86QITiesh62CO4HjYwtta2vteGzbmfY
|
||||
ETyoBi6acLD6CI6I1CUHjuFcH6bs4nazE03oI8c2TUbjUYWk0BvD+4JbrFW1i4Op
|
||||
aQ57XIgia/XzfEsVGKFPvQ8tCBpNGCJ74W5kEJ4lM5iy/rCSzuCqwhYu0UiKyyFD
|
||||
5+yrHNazw0TQSukJWi1VzvUDQxpNqp3gJ2F2jirnFDSIWfKY85TQKCPv8TedvBKX
|
||||
CX7wciOP7sVMcTDB
|
||||
-----END CERTIFICATE-----
|
|
@ -1,27 +0,0 @@
|
|||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAy8fn2XjSvPKEe+pkY/K0x9c0UhzmGvwNrqPPYbcoIdMVodgz
|
||||
Dq6fc5IHjQrDEBzq0GTexyVYVgv/gGnSAJpg9svmA9yDG5yRqQnrCq/8t0JetR85
|
||||
vvDz4n9Bf9SAmZMqwVP1ydwEVAzg+yotcY3M5qxZnXxOmPsPnjgZSt0VAlOx4L+d
|
||||
LQEcBaFiiXuYOdc3K4ItmvfAmPtfcgtvUrGsEsanUnUhEV+RDE4isvs3NlZ7w95O
|
||||
jxkdiUYEN/C3m8OScLSbFKErkZm3GOs6hMPM7V+xdmwO0z5gBQ2YYM/apUVb/uIa
|
||||
nxzA4b9Pr+c/GBMHNfeF0kjaexugF+GpzKkiNwIDAQABAoIBAGnSgOrlHIK0aeoz
|
||||
mThyBEE211vA2BmxRKWpOXtj8rpF9JjcPf9k3TbV4Yfzy8IlUicwCqReF1Zv2pnj
|
||||
2gMoKCxhTCw7KfZ/wwCGPwGIzHKaS7ZA5errE6tOLERmpPWbf/tvT1cpIzJGkdq8
|
||||
V2b9nSc43zyyHdrBnaWrOi8vScavpBuTjnpUzKKPcOvRztlGp2Sz02GzO0j6Li3M
|
||||
pzgtA31mT9EEjrQJFKqjYIobieQANDniLqbJ89Laa107rNoZfbGhgj1SquZ5/A2g
|
||||
S4b02luUcVI7HdQ6aYG9uY91q39CMOF6k22IB11YSj/t5T9FAIGaR5Hmtj5UePFT
|
||||
j3IIbkkCgYEA86Q7OT2IN1t09A/kGLzHyklN77MW2xnMdcTYRPgHotIoMk6my/9x
|
||||
VI6qrcfox2JbEcWmHPjwegAAGSfg6kIGU+G0Mp0m7ML2z9l6+lPDxNcmP3mbm5u7
|
||||
IyHMvIz/Sy7x4VxNwmrVqGfw9neNZ/Jhl4M2XbeD0MBjYMUqeDzCJLUCgYEA1h4R
|
||||
9q9llY88fsIlA5N+s9B+0L2ur74DDsaYhKp42BPH+j531nA4ziLQ8vhbAK1iqxik
|
||||
QJfoJ5iKinGfiqGQtwv+t3FPYfblQmdXNV9qjMIwWg390MJcieAXoqC84gSWK0WS
|
||||
maF3Gj2d4QuUB7ddS7FhLFh+duesinhzQ1zMSrsCgYEAgTeLCXKu+d0RjBeZe90z
|
||||
gP+bzBMJfi6Sl6tMoFeDhUE8fGHmaK8Tpir8LqqltIlfj29qCFenAq1ZX/4cdWGL
|
||||
BZXhAi8C4/MK/3Vyma0vWQhairOuabsQZzOX6DBHfdJqCoHv47rRkj1+ONlzL7wH
|
||||
MlouzUl1KZO/oSUwvxBKTzkCgYAq8JbbqOsvZi1Uomy33eGAACUeiZu5xNpqISu/
|
||||
F0zq0HS/W72+tHy/4j2TLHlblmn+NA/koFI/dpj6ELVVIPebrf0kHsYzuEbb3Uug
|
||||
+YStu9fkh3/KWOAkClvTEncuwIq5HNe8laQEEC1UT3UdYwmDv4vkT87025s/nc5H
|
||||
yRlzNwKBgGdjN06Tr2quQJr6TKh8AisbuCOPQMeYfwVjwnEThDonQNc6+bMlDx6E
|
||||
8OL1zmYsIWuNRqnIkZD1dA7VROCWYtOYZlpN1lbhGmluXEM2KmG8GZYo6G6Y4pXv
|
||||
U9j9sqUW/K21BTVO2ksoQhiOW3HFdjsT7InO496L/GdKTeMqUwT0
|
||||
-----END RSA PRIVATE KEY-----
|
|
@ -1,51 +0,0 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIID+DCCAuCgAwIBAgIEYFM0nzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMC
|
||||
RlIxLzAtBgNVBAoTJk1pbmlzdGVyZSBFZHVjYXRpb24gTmF0aW9uYWxlIChNRU5F
|
||||
U1IpMRQwEgYDVQQLEwsxMTAgMDQzIDAxNTERMA8GA1UECxMIYWMtZGlqb24xGTAX
|
||||
BgNVBAMTEENBLWlnb3IuZW9sZS5sYW4wHhcNMjEwMzE4MTEwODE3WhcNMjQwMzE4
|
||||
MTEwODE3WjB/MQswCQYDVQQGEwJGUjEvMC0GA1UEChMmTWluaXN0ZXJlIEVkdWNh
|
||||
dGlvbiBOYXRpb25hbGUgKE1FTkVTUikxFDASBgNVBAsTCzExMCAwNDMgMDE1MREw
|
||||
DwYDVQQLEwhhYy1kaWpvbjEWMBQGA1UEAxMNaWdvci5lb2xlLmxhbjCCASIwDQYJ
|
||||
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvH59l40rzyhHvqZGPytMfXNFIc5hr8
|
||||
Da6jz2G3KCHTFaHYMw6un3OSB40KwxAc6tBk3sclWFYL/4Bp0gCaYPbL5gPcgxuc
|
||||
kakJ6wqv/LdCXrUfOb7w8+J/QX/UgJmTKsFT9cncBFQM4PsqLXGNzOasWZ18Tpj7
|
||||
D544GUrdFQJTseC/nS0BHAWhYol7mDnXNyuCLZr3wJj7X3ILb1KxrBLGp1J1IRFf
|
||||
kQxOIrL7NzZWe8PeTo8ZHYlGBDfwt5vDknC0mxShK5GZtxjrOoTDzO1fsXZsDtM+
|
||||
YAUNmGDP2qVFW/7iGp8cwOG/T6/nPxgTBzX3hdJI2nsboBfhqcypIjcCAwEAAaN4
|
||||
MHYwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
|
||||
CCsGAQUFBwMCMBEGCWCGSAGG+EIBAQQEAwIGQDAQBglghkgBhvhCAQ0EAxYBIDAY
|
||||
BgNVHREEETAPgg1pZ29yLmVvbGUubGFuMA0GCSqGSIb3DQEBCwUAA4IBAQA83178
|
||||
eR/y5xo93GTebRQ31JFcaD2NTkuHivU7HZUxzCyavSwtYIMaCFCPUaK/62PVRQ12
|
||||
b2mk5O3nBwFop01Tz1u8jBe2f2tz/oosR86QITiesh62CO4HjYwtta2vteGzbmfY
|
||||
ETyoBi6acLD6CI6I1CUHjuFcH6bs4nazE03oI8c2TUbjUYWk0BvD+4JbrFW1i4Op
|
||||
aQ57XIgia/XzfEsVGKFPvQ8tCBpNGCJ74W5kEJ4lM5iy/rCSzuCqwhYu0UiKyyFD
|
||||
5+yrHNazw0TQSukJWi1VzvUDQxpNqp3gJ2F2jirnFDSIWfKY85TQKCPv8TedvBKX
|
||||
CX7wciOP7sVMcTDB
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAy8fn2XjSvPKEe+pkY/K0x9c0UhzmGvwNrqPPYbcoIdMVodgz
|
||||
Dq6fc5IHjQrDEBzq0GTexyVYVgv/gGnSAJpg9svmA9yDG5yRqQnrCq/8t0JetR85
|
||||
vvDz4n9Bf9SAmZMqwVP1ydwEVAzg+yotcY3M5qxZnXxOmPsPnjgZSt0VAlOx4L+d
|
||||
LQEcBaFiiXuYOdc3K4ItmvfAmPtfcgtvUrGsEsanUnUhEV+RDE4isvs3NlZ7w95O
|
||||
jxkdiUYEN/C3m8OScLSbFKErkZm3GOs6hMPM7V+xdmwO0z5gBQ2YYM/apUVb/uIa
|
||||
nxzA4b9Pr+c/GBMHNfeF0kjaexugF+GpzKkiNwIDAQABAoIBAGnSgOrlHIK0aeoz
|
||||
mThyBEE211vA2BmxRKWpOXtj8rpF9JjcPf9k3TbV4Yfzy8IlUicwCqReF1Zv2pnj
|
||||
2gMoKCxhTCw7KfZ/wwCGPwGIzHKaS7ZA5errE6tOLERmpPWbf/tvT1cpIzJGkdq8
|
||||
V2b9nSc43zyyHdrBnaWrOi8vScavpBuTjnpUzKKPcOvRztlGp2Sz02GzO0j6Li3M
|
||||
pzgtA31mT9EEjrQJFKqjYIobieQANDniLqbJ89Laa107rNoZfbGhgj1SquZ5/A2g
|
||||
S4b02luUcVI7HdQ6aYG9uY91q39CMOF6k22IB11YSj/t5T9FAIGaR5Hmtj5UePFT
|
||||
j3IIbkkCgYEA86Q7OT2IN1t09A/kGLzHyklN77MW2xnMdcTYRPgHotIoMk6my/9x
|
||||
VI6qrcfox2JbEcWmHPjwegAAGSfg6kIGU+G0Mp0m7ML2z9l6+lPDxNcmP3mbm5u7
|
||||
IyHMvIz/Sy7x4VxNwmrVqGfw9neNZ/Jhl4M2XbeD0MBjYMUqeDzCJLUCgYEA1h4R
|
||||
9q9llY88fsIlA5N+s9B+0L2ur74DDsaYhKp42BPH+j531nA4ziLQ8vhbAK1iqxik
|
||||
QJfoJ5iKinGfiqGQtwv+t3FPYfblQmdXNV9qjMIwWg390MJcieAXoqC84gSWK0WS
|
||||
maF3Gj2d4QuUB7ddS7FhLFh+duesinhzQ1zMSrsCgYEAgTeLCXKu+d0RjBeZe90z
|
||||
gP+bzBMJfi6Sl6tMoFeDhUE8fGHmaK8Tpir8LqqltIlfj29qCFenAq1ZX/4cdWGL
|
||||
BZXhAi8C4/MK/3Vyma0vWQhairOuabsQZzOX6DBHfdJqCoHv47rRkj1+ONlzL7wH
|
||||
MlouzUl1KZO/oSUwvxBKTzkCgYAq8JbbqOsvZi1Uomy33eGAACUeiZu5xNpqISu/
|
||||
F0zq0HS/W72+tHy/4j2TLHlblmn+NA/koFI/dpj6ELVVIPebrf0kHsYzuEbb3Uug
|
||||
+YStu9fkh3/KWOAkClvTEncuwIq5HNe8laQEEC1UT3UdYwmDv4vkT87025s/nc5H
|
||||
yRlzNwKBgGdjN06Tr2quQJr6TKh8AisbuCOPQMeYfwVjwnEThDonQNc6+bMlDx6E
|
||||
8OL1zmYsIWuNRqnIkZD1dA7VROCWYtOYZlpN1lbhGmluXEM2KmG8GZYo6G6Y4pXv
|
||||
U9j9sqUW/K21BTVO2ksoQhiOW3HFdjsT7InO496L/GdKTeMqUwT0
|
||||
-----END RSA PRIVATE KEY-----
|
|
@ -1,90 +0,0 @@
|
|||
provider "opennebula" {
|
||||
endpoint = var.one_endpoint
|
||||
username = var.one_user
|
||||
password = var.one_pass
|
||||
}
|
||||
|
||||
provider "dns" {
|
||||
update {
|
||||
server = var.dns_server
|
||||
port = "53530"
|
||||
key_name = var.dns_key_name
|
||||
key_algorithm = var.dns_key_algo
|
||||
key_secret = var.dns_key_secret
|
||||
retries = 10
|
||||
timeout = 300
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Production
|
||||
|
||||
/*
|
||||
* Virtual networks
|
||||
*/
|
||||
resource "opennebula_virtual_network" "vnets"{
|
||||
for_each = var.virtual_networks
|
||||
name = each.key
|
||||
vlan_id = each.value.vlan_id
|
||||
permissions = "660"
|
||||
bridge = var.one_vswitch
|
||||
type = "ovswitch"
|
||||
mtu = 1500
|
||||
ar {
|
||||
ar_type = each.value.adress_range.ar_type
|
||||
size = each.value.adress_range.size
|
||||
ip4 = each.value.adress_range.ip4
|
||||
}
|
||||
dns = each.value.dns
|
||||
gateway = each.value.gateway
|
||||
clusters = each.value.clusters
|
||||
}
|
||||
|
||||
/*
|
||||
* VIRTUAL MACHINES
|
||||
*/
|
||||
|
||||
// Production
|
||||
module "vms" {
|
||||
source = "./modules/virtualMachine"
|
||||
one_user = var.one_user
|
||||
one_prod_ds = var.one_prod_ds
|
||||
for_each = var.virtual_machines
|
||||
|
||||
vm_shortname = each.key
|
||||
vm_fqdn = each.value.fqdn
|
||||
vm_domain = var.dns_domain
|
||||
dns_a_record = each.value.create_dns_a_record
|
||||
|
||||
cpu = each.value.cpu
|
||||
vcpu = each.value.vcpu
|
||||
ram = each.value.memory
|
||||
|
||||
vnets = opennebula_virtual_network.vnets
|
||||
network_interfaces = each.value.network_interfaces
|
||||
|
||||
tag_labels = each.value.labels
|
||||
|
||||
system_image_name = each.value.disks.system.name
|
||||
data_image_name = ""
|
||||
|
||||
system_image_source = each.value.disks.system.source
|
||||
data_image_source = ""
|
||||
|
||||
depends = [
|
||||
for dp in each.value.network_interfaces:
|
||||
opennebula_virtual_network.vnets[dp.network_name].id
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Additionnal DNS Entry
|
||||
module "ber_asso_fr" {
|
||||
source = "./modules/cadolesDNS"
|
||||
dns_domain = "cadoles.com."
|
||||
dns_a_records = var.dns_a_records
|
||||
dns_cname_records = var.dns_cname_records
|
||||
depends = [ module.dns.virtual_machine_shortname ]
|
||||
}
|
||||
*/
|
|
@ -1,29 +0,0 @@
|
|||
// Dependencies management
|
||||
resource "null_resource" "depends_on" {
|
||||
triggers = {
|
||||
depends_on = join("", var.depends)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
resource "dns_a_record_set" "a_records" {
|
||||
for_each = var.dns_a_records
|
||||
|
||||
zone = var.dns_domain
|
||||
name = each.key
|
||||
ttl = 300
|
||||
|
||||
addresses = each.value
|
||||
depends_on = [ null_resource.depends_on ]
|
||||
}
|
||||
|
||||
resource "dns_cname_record" "cname_records" {
|
||||
for_each = var.dns_cname_records
|
||||
|
||||
zone = var.dns_domain
|
||||
name = each.key
|
||||
cname = each.value
|
||||
ttl = 300
|
||||
|
||||
depends_on = [ null_resource.depends_on ]
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
variable "dns_domain" {
|
||||
description = "DNS Domain name (FQDN)"
|
||||
type = string
|
||||
default = "cadoles.com."
|
||||
}
|
||||
|
||||
variable "dns_a_records" {
|
||||
description = "List of dns A records to create"
|
||||
type = map
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "dns_cname_records" {
|
||||
description = "List of CNAME entires"
|
||||
type = map
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "depends" {
|
||||
description = "List of output_variables for dependences management"
|
||||
type = list
|
||||
default = []
|
||||
}
|
|
@ -1,115 +0,0 @@
|
|||
// Dependencies management
|
||||
resource "null_resource" "depends_on" {
|
||||
triggers = {
|
||||
depends_on = join("", var.depends)
|
||||
}
|
||||
}
|
||||
|
||||
// OpenNebula disk image !
|
||||
resource "opennebula_image" "system" {
|
||||
name = var.system_image_name
|
||||
description = "System disk image"
|
||||
datastore_id = var.one_prod_ds
|
||||
//persistent = false
|
||||
persistent = true
|
||||
//lock = "MANAGE"
|
||||
path = var.system_image_source
|
||||
dev_prefix = "vd"
|
||||
driver = "qcow2"
|
||||
format = "qcow2"
|
||||
permissions = "660"
|
||||
group = "production"
|
||||
}
|
||||
|
||||
resource "opennebula_image" "data" {
|
||||
name = var.data_image_name
|
||||
description = "Data disk image"
|
||||
datastore_id = var.one_prod_ds
|
||||
persistent = true
|
||||
//lock = "MANAGE"
|
||||
path = var.data_image_source
|
||||
dev_prefix = "vd"
|
||||
driver = "qcow2"
|
||||
format = "qcow2"
|
||||
permissions = "660"
|
||||
group = "production"
|
||||
count = var.data_image_name != "" ? 1 : 0
|
||||
}
|
||||
|
||||
// OpenNebula (VM) Template definition
|
||||
resource "opennebula_template" "vm_template" {
|
||||
name = var.vm_shortname
|
||||
cpu = var.cpu
|
||||
vcpu = var.vcpu
|
||||
memory = var.ram
|
||||
graphics {
|
||||
keymap = "fr"
|
||||
listen = "0.0.0.0"
|
||||
type = "VNC"
|
||||
}
|
||||
context = {
|
||||
DNS_HOSTNAME = "yes"
|
||||
NETWORK = "YES"
|
||||
SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]"
|
||||
USERNAME = "root"
|
||||
}
|
||||
|
||||
disk {
|
||||
image_id = opennebula_image.system.id
|
||||
}
|
||||
|
||||
dynamic "disk" {
|
||||
for_each = opennebula_image.data
|
||||
content {
|
||||
image_id = disk.id
|
||||
}
|
||||
}
|
||||
|
||||
//labels = var.tag_labels
|
||||
|
||||
dynamic "nic" {
|
||||
for_each = var.network_interfaces
|
||||
|
||||
content {
|
||||
network_id = var.vnets[nic.value.network_name].id
|
||||
model = "virtio"
|
||||
ip = nic.value.ip
|
||||
}
|
||||
}
|
||||
permissions = "600"
|
||||
group = "production"
|
||||
depends_on = [ opennebula_image.system,
|
||||
opennebula_image.data ]
|
||||
}
|
||||
|
||||
// OpenNebula Virtual Machine
|
||||
resource "opennebula_virtual_machine" "vm" {
|
||||
name = var.vm_fqdn
|
||||
group = "production"
|
||||
timeout = 10
|
||||
template_id = opennebula_template.vm_template.id
|
||||
depends_on = [ opennebula_template.vm_template,
|
||||
null_resource.depends_on ]
|
||||
}
|
||||
|
||||
resource "dns_a_record_set" "vm_dns_a_record" {
|
||||
count = var.dns_a_record == "yes" ? 1 : 0
|
||||
|
||||
zone = var.vm_domain
|
||||
name = var.vm_shortname
|
||||
ttl = 300
|
||||
|
||||
addresses = [ var.network_interfaces[0].ip ]
|
||||
depends_on = [ opennebula_virtual_machine.vm ]
|
||||
}
|
||||
|
||||
resource "dns_cname_record" "vm_dns_cname_record" {
|
||||
for_each = var.dns_cname_record
|
||||
|
||||
zone = var.vm_domain
|
||||
name = each.value
|
||||
cname = "${var.vm_fqdn}."
|
||||
ttl = 300
|
||||
|
||||
depends_on = [ opennebula_virtual_machine.vm ]
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
output "virtual_machine_shortname" {
|
||||
value = opennebula_virtual_machine.vm.name
|
||||
}
|
||||
|
||||
output "network_interfaces" {
|
||||
value = var.network_interfaces
|
||||
}
|
|
@ -1,93 +0,0 @@
|
|||
variable "one_user" {
|
||||
description = "OpenNebula user"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "one_prod_ds" {
|
||||
description = "ID du Datastore de production"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "vm_fqdn" {
|
||||
description = "Virtual Machine FQDN Name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "vm_shortname" {
|
||||
description = "Virtual machine short name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "vm_domain" {
|
||||
description = "Full qualified dns domain name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "system_image_name" {
|
||||
description = "System image disk name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "system_image_source" {
|
||||
description = "Virtual Machine system image source"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "data_image_name" {
|
||||
description = "Data image disk name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "data_image_source" {
|
||||
description = "Virtual Machine data disk image source"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "tag_labels" {
|
||||
description = "Labels"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "network_interfaces" {
|
||||
description = "Network interfaces"
|
||||
type = list
|
||||
}
|
||||
|
||||
variable "cpu" {
|
||||
description = "VM CPU"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "vcpu" {
|
||||
description = "VM vCPU"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "ram" {
|
||||
description = "VM RAM"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "depends" {
|
||||
description = "List of output_variables for dependences management"
|
||||
type = list
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "dns_a_record" {
|
||||
description = "Create a dns A record (yes/no)"
|
||||
type = string
|
||||
default = "no"
|
||||
}
|
||||
|
||||
variable "dns_cname_record" {
|
||||
description = "List of CNAME for A entry"
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "vnets" {
|
||||
description = "OpenNebula virtual network resource"
|
||||
type = map
|
||||
default = {}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dns = {
|
||||
source = "hashicorp/dns"
|
||||
}
|
||||
null = {
|
||||
source = "hashicorp/null"
|
||||
}
|
||||
opennebula = {
|
||||
source = "OpenNebula/opennebula"
|
||||
version = "0.3.0"
|
||||
}
|
||||
}
|
||||
required_version = ">= 0.13"
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
SUNSTONE = [
|
||||
DEFAULT_VIEW = "${group_default_view}",
|
||||
VIEWS = "group_views"
|
||||
]
|
|
@ -1,12 +0,0 @@
|
|||
one_endpoint = "https://myhapy.fabrica.local/RPC2"
|
||||
one_user = "terra"
|
||||
one_pass = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
||||
one_vswitch = "vswitch"
|
||||
one_prod_ds = "101"
|
||||
image_builder_ip = "192.168.1.108"
|
||||
dns_server = "192.168.5.53"
|
||||
dns_domain = "fabrica.local."
|
||||
cluster_id = 0
|
||||
|
||||
dns_key_name = "terraform.key."
|
||||
dns_key_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
|
@ -1,22 +0,0 @@
|
|||
dns_zones = [
|
||||
{
|
||||
domain = "cadoles.com",
|
||||
a_records = {
|
||||
hapy = [ "192.168.1.108" ],
|
||||
amon = [ "192.168.1.1"]
|
||||
},
|
||||
cname_records = {
|
||||
hapy = "virt.cadoles.com."
|
||||
}
|
||||
},
|
||||
{
|
||||
domain = "cadol.es",
|
||||
a_records = {
|
||||
hapy = [ "192.168.1.108" ],
|
||||
amon = [ "192.168.1.1"]
|
||||
},
|
||||
cname_records = {
|
||||
hapy = "virt.cadol.es."
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,24 +0,0 @@
|
|||
virtual_networks = {
|
||||
internet = {
|
||||
vlan_id = "4",
|
||||
adress_range = {
|
||||
ar_type = "IP4",
|
||||
size = "10",
|
||||
ip4 = "192.168.1.28"
|
||||
},
|
||||
dns = "192.168.5.53",
|
||||
gateway = "192.168.1.1",
|
||||
clusters = [ "0" ]
|
||||
},
|
||||
office = {
|
||||
vlan_id = "10",
|
||||
adress_range = {
|
||||
ar_type = "IP4",
|
||||
size = "30",
|
||||
ip4 = "192.168.10.100"
|
||||
},
|
||||
dns = "192.168.5.53",
|
||||
gateway = "192.168.10.254",
|
||||
clusters = [ "0" ]
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
virtual_machines = {
|
||||
amon = {
|
||||
fqdn = "amon.fabrica.local",
|
||||
domain = "fabrica.local",
|
||||
create_dns_a_record = "no",
|
||||
cpu = "0.4",
|
||||
vcpu = "4",
|
||||
memory = "4096",
|
||||
network_interfaces = [
|
||||
{ network_name = "internet", ip = "192.168.1.3" },
|
||||
{ network_name = "office", ip = "192.168.10.254" }
|
||||
],
|
||||
|
||||
labels = "Production, Amon, Infra, Backup, EOLE",
|
||||
|
||||
disks = {
|
||||
system = {
|
||||
name = "prod-amon-static",
|
||||
source = "http://localhost/fabrica/infra/production/amon.fabrica.local/system/amon.fabrica.local.img"
|
||||
}
|
||||
}
|
||||
},
|
||||
scribe = {
|
||||
fqdn = "scribe.fabrica.local",
|
||||
domain = "fabrica.local",
|
||||
create_dns_a_record = "no",
|
||||
cpu = "0.4",
|
||||
vcpu = "4",
|
||||
memory = "4096",
|
||||
network_interfaces = [
|
||||
{ network_name = "office", ip = "192.168.10.200" }
|
||||
],
|
||||
|
||||
labels = "Production, Scribe, Infra, Backup, EOLE",
|
||||
|
||||
disks = {
|
||||
system = {
|
||||
name = "prod-scribe-static",
|
||||
source = "http://localhost/fabrica/infra/production/scribe.fabrica.local/system/scribe.fabrica.local.img"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* Variables
|
||||
*/
|
||||
|
||||
variable "one_endpoint" {
|
||||
description = "OpenNebula endpoint"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "one_user" {
|
||||
description = "OpenNebula user"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "one_pass" {
|
||||
description = "OpenNebula password"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "one_vswitch" {
|
||||
description = "OpenvSwitch bridge name"
|
||||
type = string
|
||||
}
|
||||
variable "dns_server" {
|
||||
description = "DNS Server IP"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "cluster_id" {
|
||||
description = "Cadoles ONE cluster ID"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "one_prod_ds" {
|
||||
description = "ID du Datastore de production"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "dns_domain" {
|
||||
description = "DNS Full qualified domain"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "dns_key_name" {
|
||||
description = "DDNS Key name"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "dns_key_algo" {
|
||||
description = "DDNS Key algorithm"
|
||||
type = string
|
||||
default = "hmac-sha256"
|
||||
}
|
||||
|
||||
variable "dns_key_secret" {
|
||||
description = "DDNS Key secret"
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "dns_zones" {
|
||||
description = "DNS Zone description"
|
||||
type = list
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "image_builder_ip" {
|
||||
description = "Image builder IP"
|
||||
type = string
|
||||
default = "192.168.5.251"
|
||||
}
|
||||
|
||||
variable "virtual_networks" {
|
||||
description = "OpenNebula virtual networks definition"
|
||||
type = map
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable "virtual_machines" {
|
||||
description = "OpenNebula virtual machines definition"
|
||||
type = map
|
||||
default = {}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
dns = {
|
||||
source = "hashicorp/dns"
|
||||
}
|
||||
opennebula = {
|
||||
source = "opennebula/opennebula"
|
||||
}
|
||||
}
|
||||
required_version = ">= 0.13"
|
||||
}
|
39
README.md
39
README.md
|
@ -1,41 +1,2 @@
|
|||
# Fabrica
|
||||
## Build your infrastructure from scratch with Eole/Hâpy Packer and Terraform
|
||||
|
||||
# The idea :
|
||||
The goal of this project is to provide a simple way to build a complete infrastructure from scratch with
|
||||
EOLE/Hâpy, packer and Terraform.
|
||||
|
||||
# How it works ?
|
||||
|
||||
It's quite simple actualy, packer will build your virtual machine images and terraform will deploy them on your hapy server.
|
||||
|
||||
The "fabrica" command provides every thing you need, it calls the packer and the terraform tool with the correct options
|
||||
to make things possible.
|
||||
|
||||
This project contains basic recipes for alpine linux, Ubuntu and Eole images. You will need to provide your own recipes if you want
|
||||
to have custom images. So you will need to learn how packer works and witch tools fabrica offers you.
|
||||
|
||||
First you will need to decide what is your dns domain, fabrica provides exemples for two domains "cadoles.com" and "eole.local".
|
||||
Then you can provide recipes for your "environement" here we use "production" but it can be whatever you want. You can find this exemple
|
||||
in the "build" directory, this is actually a symlink to make things nicer to the eye, if you want to dig into fabrica you can find all packer
|
||||
stuff in the hidden directory ".packer".
|
||||
|
||||
Once your images are ready you can describe your infrastructure in the "deploy" zone. but first things first ! Let's install fabrica and talk about the Build.
|
||||
|
||||
## Install
|
||||
|
||||
We assume you allready have a running Hâpy server.
|
||||
Copy the source code somewhere on your server and run the command
|
||||
```./fabrica install /srv/fabrica ```
|
||||
This will install all the needed tools (terraform and packer) with the correct versions for fabrica (Don't install them yourself or if you do find the correct versions in fabrica script). And it will copy the fabrica repository in the provided root direcytory "/srv/fabrica"
|
||||
|
||||
## Building your images
|
||||
|
||||
### Build for your domain !
|
||||
Create a directory with your domain name, let's say "eole.lan", let's say you have only one environement "develop"
|
||||
|
||||
``` cd /srv/fabrica
|
||||
mkdir -p build/eole.lan/develop
|
||||
```
|
||||
#### You first receipe ... let's say an eolebase module.
|
||||
|
||||
|
|
134
fabrica
134
fabrica
|
@ -1,10 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
WORKDIR="./.terraform"
|
||||
WORKDIR="./terraform"
|
||||
TERRA="terraform"
|
||||
PACKER_ROOT="./.packer"
|
||||
|
||||
[ -f /etc/lsb-release ] && source /etc/lsb-release
|
||||
VAR_FILE="main.tfvars"
|
||||
PACKER_ROOT="./packer"
|
||||
|
||||
# FIXME
|
||||
function needGitPull()
|
||||
|
@ -14,94 +13,6 @@ function needGitPull()
|
|||
return ${diff}
|
||||
}
|
||||
|
||||
## Install & Uninstall ##
|
||||
function install_hashicorp_tools()
|
||||
{
|
||||
packer_version="1.6.1"
|
||||
terraform_version="0.14.3"
|
||||
ansible_version="2.9.19"
|
||||
if [[ ${DISTRIB_ID} == "ManjaroLinux" ]]
|
||||
then
|
||||
pacman -Syq make ansible terraform packer --noconfirm
|
||||
return ${?}
|
||||
elif [[ ${DISTRIB_ID} == "Ubuntu" ]]
|
||||
then
|
||||
apt-get update
|
||||
apt-get -y install software-properties-common make
|
||||
gpg_key_url="https://apt.releases.hashicorp.com/gpg"
|
||||
|
||||
curl -fsSL ${gpg_key_url} | apt-key add -
|
||||
apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
|
||||
apt-add-repository --yes --update ppa:ansible/ansible
|
||||
apt-get update
|
||||
apt-get -y install --allow-downgrades ansible=${ansible_version} terraform=${terraform_version} packer=${packer_version}
|
||||
return ${?}
|
||||
fi
|
||||
}
|
||||
|
||||
function setup_nginx()
|
||||
{
|
||||
root=${1}
|
||||
|
||||
if [ -d /etc/nginx/web.d ]
|
||||
then
|
||||
sed -i -e "s!%%ROOT%%!${root}!g" ${root}/.configs/nginx/fabrica.conf
|
||||
ln -s ${root}/.configs/nginx/fabrica.conf /etc/nginx/web.d/
|
||||
echo "Don't forget to restart nginx"
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function install_fabrica()
|
||||
{
|
||||
root=${1}
|
||||
[ ! -d ${root} ] && mkdir -p $root
|
||||
cp -rp * ${root}
|
||||
cp -rp .packer ${root}
|
||||
cp -rp .terraform ${root}
|
||||
cp -rp .configs ${root}
|
||||
return ${?}
|
||||
}
|
||||
|
||||
function install()
|
||||
{
|
||||
ROOT=${2}
|
||||
ret=0
|
||||
|
||||
if [[ -z ${ROOT} ]]
|
||||
then
|
||||
echo "You need to provide an installation directory as paramter"
|
||||
echo "./fabrica install /srv/fabrica"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -e ${ROOT}/.ist ]]
|
||||
then
|
||||
echo "Flag file ${ROOT}/.ist exists !"
|
||||
echo " ==> Fabrica is allready installed !"
|
||||
echo "Nothing to do !"
|
||||
return 0
|
||||
fi
|
||||
|
||||
install_hashicorp_tools
|
||||
ret=$((ret+${?}))
|
||||
|
||||
install_fabrica ${ROOT}
|
||||
ret=$((ret+${?}))
|
||||
|
||||
setup_nginx ${ROOT}
|
||||
ret=$((ret+${?}))
|
||||
|
||||
if [ ${ret} -eq 0 ]
|
||||
then
|
||||
touch ${ROOT}/.ist
|
||||
fi
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
## TERRAFORM ##
|
||||
# Run Terraform command with the correct options
|
||||
function trun()
|
||||
{
|
||||
#needGitPull
|
||||
|
@ -112,43 +23,31 @@ function trun()
|
|||
echo "--> Git pull needed !"
|
||||
return 1
|
||||
fi
|
||||
|
||||
VAR_FILES=$(ls tfvars/*.tfvars)
|
||||
OPTS=""
|
||||
for fl in ${VAR_FILES}
|
||||
do
|
||||
OPTS="${OPTS} -var-file ${fl}"
|
||||
done
|
||||
|
||||
${TERRA} ${1} ${OPTS}
|
||||
${TERRA} ${1} -var-file ${VAR_FILE}
|
||||
res=${?}
|
||||
cd -
|
||||
|
||||
return ${res}
|
||||
}
|
||||
|
||||
# Run terraform plan
|
||||
function plan()
|
||||
{
|
||||
trun plan
|
||||
return $?
|
||||
}
|
||||
|
||||
# Run terraform apply
|
||||
function apply()
|
||||
{
|
||||
trun apply
|
||||
return $?
|
||||
}
|
||||
|
||||
# Run terraform destroy
|
||||
function destroy()
|
||||
{
|
||||
trun destroy
|
||||
return $?
|
||||
}
|
||||
|
||||
# Run terraform taint
|
||||
function taint()
|
||||
{
|
||||
target=$1
|
||||
|
@ -156,38 +55,33 @@ function taint()
|
|||
|
||||
cd ${WORKDIR}
|
||||
|
||||
$TERRA taint module.vms[${resource}].opennebula_template.vm_template
|
||||
$TERRA taint module.vms[${resource}].opennebula_virtual_machine.vm
|
||||
$TERRA taint module.vms[${resource}].opennebula_image.system
|
||||
$TERRA taint module.${resource}.opennebula_template.vm_template
|
||||
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
|
||||
$TERRA taint module.${resource}.opennebula_image.system
|
||||
cd -
|
||||
|
||||
}
|
||||
|
||||
# Run terraform taint for all resources
|
||||
function taint_all()
|
||||
{
|
||||
target=$1
|
||||
resource=$2
|
||||
cd ${WORKDIR}
|
||||
|
||||
$TERRA taint module.vms[${resource}].opennebula_template.vm_template
|
||||
$TERRA taint module.vms[${resource}].opennebula_virtual_machine.vm
|
||||
$TERRA taint module.vms[${resource}].opennebula_image.system
|
||||
$TERRA taint module.vms[${resource}].opennebula_image.data
|
||||
$TERRA taint module.${resource}.opennebula_template.vm_template
|
||||
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
|
||||
$TERRA taint module.${resource}.opennebula_image.system
|
||||
$TERRA taint module.${resource}.opennebula_image.data
|
||||
|
||||
cd -
|
||||
}
|
||||
|
||||
# Run terraform init
|
||||
function init()
|
||||
{
|
||||
trun init
|
||||
return ${?}
|
||||
}
|
||||
|
||||
## PACKER ##
|
||||
|
||||
# Run packer build
|
||||
function build()
|
||||
{
|
||||
target=$2
|
||||
|
@ -197,10 +91,10 @@ function build()
|
|||
return ${?}
|
||||
}
|
||||
|
||||
# List available recipes
|
||||
function recipes()
|
||||
function publish()
|
||||
{
|
||||
echo "Need to be done"
|
||||
target=$2
|
||||
echo "FIXME for publish"
|
||||
}
|
||||
|
||||
$1 $@
|
||||
|
|
|
@ -43,17 +43,17 @@
|
|||
|
||||
- name: Adding EOLE main repository
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-{{ EOLE_VERSION }} main cloud
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2 main cloud
|
||||
state: present
|
||||
|
||||
- name: Adding EOLE security repository
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-{{ EOLE_VERSION }}-security main cloud
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-security main cloud
|
||||
state: present
|
||||
|
||||
- name: Adding EOLE updates repository
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-{{ EOLE_VERSION }}-updates main cloud
|
||||
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-updates main cloud
|
||||
state: present
|
||||
|
||||
- name: Update cache
|
||||
|
@ -65,16 +65,6 @@
|
|||
http_proxy: "{{ http_proxy }}"
|
||||
https_proxy: "{{ https_proxy }}"
|
||||
|
||||
- name: Install chromium browser on 2.7.2
|
||||
apt:
|
||||
name: chromium-browser
|
||||
environment:
|
||||
HTTP_PROXY: "{{ http_proxy }}"
|
||||
HTTPS_PROXY: "{{ https_proxy }}"
|
||||
http_proxy: "{{ http_proxy }}"
|
||||
https_proxy: "{{ https_proxy }}"
|
||||
when: EOLE_VERSION == "2.7.2"
|
||||
|
||||
- name: Install eole-server and eole-exim-pkg
|
||||
apt:
|
||||
name: eole-server,eole-exim-pkg
|
|
@ -0,0 +1,30 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIFHzCCBAegAwIBAgISBCjkb2j6sMEhSJmFWzQLY9ZFMA0GCSqGSIb3DQEBCwUA
|
||||
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
|
||||
EwJSMzAeFw0yMTAyMTcxMjA3MTZaFw0yMTA1MTgxMjA3MTZaMBgxFjAUBgNVBAMM
|
||||
DSouYmVyLmFzc28uZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4
|
||||
WWRNeZeda6tJdMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzD
|
||||
gaIs09jwsz/ONgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCG
|
||||
xCIIVVhBQ6IYZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8L
|
||||
d7OatFaNC4J3/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97
|
||||
QRgT0UAT2Nuwn/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0
|
||||
ky16vAsXWjt1OXxIfi8ZAgMBAAGjggJHMIICQzAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
|
||||
BBYEFIPQnxhiMLua8dlOGgyjElFFSq9JMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJ
|
||||
QOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3Iz
|
||||
Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcv
|
||||
MBgGA1UdEQQRMA+CDSouYmVyLmFzc28uZnIwTAYDVR0gBEUwQzAIBgZngQwBAgEw
|
||||
NwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5j
|
||||
cnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQCUILwejtWNbIhzH4KL
|
||||
IiwN0dpNXmxPlD1h204vWE2iwgAAAXewGhhfAAAEAwBGMEQCIC88mMBZPXR5wDuV
|
||||
Q3+TNOafkGYD1RZMp88tiTI4j/EAAiAi8HdR5aYRkcjgVKsB8Dc/yA36dkQ9V/MH
|
||||
3+50rvef4gB2AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABd7Aa
|
||||
GQgAAAQDAEcwRQIhAIFWNgftG1lP3bFEMx90k9PGZyEQnAgt/I0rmUMFRsJVAiAT
|
||||
y92UzhyUcE5ylL0ef33/f+y5Fk3TemdFDnWguX56CzANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEACiz/1Na1pfXd78CZ8jN65EcbhE8Z9JMUb8v4uOOf5whK6oHlkUgAvjIUzL5A
|
||||
xfmUPUXdceSLOttgT6+wx5X8zyPSiUNQDEre8RMqGtRTX0uix5Gxp2nyQAOf7BdS
|
||||
knzYkQ90HM5XHyXci0yqImT+g1XUz404DTXi4TtunVXaHTsnVK4VvJCMbitmwEjR
|
||||
8u3xQrbqqBAkhVMeiywgNdSpkhDZz1Vl7NQgv0QmkdDfs2UM2cOt/XPlzyzYQ/DG
|
||||
sRyJ+ItEm5XMlrh21ISmnHzeBNGLGnPBBNBYMX8ReLIw1VjQ+98adWs+jL6/Ac9Q
|
||||
aNieo2Uw0oyYjOfiqjgqwmQ4Og==
|
||||
-----END CERTIFICATE-----
|
|
@ -0,0 +1,56 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIFHzCCBAegAwIBAgISBCjkb2j6sMEhSJmFWzQLY9ZFMA0GCSqGSIb3DQEBCwUA
|
||||
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
|
||||
EwJSMzAeFw0yMTAyMTcxMjA3MTZaFw0yMTA1MTgxMjA3MTZaMBgxFjAUBgNVBAMM
|
||||
DSouYmVyLmFzc28uZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4
|
||||
WWRNeZeda6tJdMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzD
|
||||
gaIs09jwsz/ONgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCG
|
||||
xCIIVVhBQ6IYZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8L
|
||||
d7OatFaNC4J3/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97
|
||||
QRgT0UAT2Nuwn/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0
|
||||
ky16vAsXWjt1OXxIfi8ZAgMBAAGjggJHMIICQzAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
|
||||
BBYEFIPQnxhiMLua8dlOGgyjElFFSq9JMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJ
|
||||
QOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3Iz
|
||||
Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcv
|
||||
MBgGA1UdEQQRMA+CDSouYmVyLmFzc28uZnIwTAYDVR0gBEUwQzAIBgZngQwBAgEw
|
||||
NwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5j
|
||||
cnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQCUILwejtWNbIhzH4KL
|
||||
IiwN0dpNXmxPlD1h204vWE2iwgAAAXewGhhfAAAEAwBGMEQCIC88mMBZPXR5wDuV
|
||||
Q3+TNOafkGYD1RZMp88tiTI4j/EAAiAi8HdR5aYRkcjgVKsB8Dc/yA36dkQ9V/MH
|
||||
3+50rvef4gB2AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABd7Aa
|
||||
GQgAAAQDAEcwRQIhAIFWNgftG1lP3bFEMx90k9PGZyEQnAgt/I0rmUMFRsJVAiAT
|
||||
y92UzhyUcE5ylL0ef33/f+y5Fk3TemdFDnWguX56CzANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEACiz/1Na1pfXd78CZ8jN65EcbhE8Z9JMUb8v4uOOf5whK6oHlkUgAvjIUzL5A
|
||||
xfmUPUXdceSLOttgT6+wx5X8zyPSiUNQDEre8RMqGtRTX0uix5Gxp2nyQAOf7BdS
|
||||
knzYkQ90HM5XHyXci0yqImT+g1XUz404DTXi4TtunVXaHTsnVK4VvJCMbitmwEjR
|
||||
8u3xQrbqqBAkhVMeiywgNdSpkhDZz1Vl7NQgv0QmkdDfs2UM2cOt/XPlzyzYQ/DG
|
||||
sRyJ+ItEm5XMlrh21ISmnHzeBNGLGnPBBNBYMX8ReLIw1VjQ+98adWs+jL6/Ac9Q
|
||||
aNieo2Uw0oyYjOfiqjgqwmQ4Og==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/
|
||||
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||
DkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFow
|
||||
MjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMT
|
||||
AlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLs
|
||||
jVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKp
|
||||
Tm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnB
|
||||
U840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7
|
||||
gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel
|
||||
/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1R
|
||||
oYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
|
||||
BAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5p
|
||||
ZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTE
|
||||
p7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEE
|
||||
AYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2Vu
|
||||
Y3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0
|
||||
LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYf
|
||||
r52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B
|
||||
AQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kH
|
||||
ejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8
|
||||
S8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfL
|
||||
qjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9p
|
||||
O5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2Tw
|
||||
UdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==
|
||||
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4WWRNeZeda6tJ
|
||||
dMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzDgaIs09jwsz/O
|
||||
NgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCGxCIIVVhBQ6IY
|
||||
ZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8Ld7OatFaNC4J3
|
||||
/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97QRgT0UAT2Nuw
|
||||
n/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0ky16vAsXWjt1
|
||||
OXxIfi8ZAgMBAAECggEBAKfFGsZzYSrvwNvCAPcK30qTFLJ41AAcfBE4JipIvbz/
|
||||
KhwP+Szeme5vlsYR/WXedUfL40a+qZEs4GWPwXqPnLBeQzOS+3NENpfHQPzjnFGu
|
||||
382sFjj/llSLbvxArzkBN/md54cD/KSwo4VnCA588lpuBE4HTuMZuzZD9vImx9JC
|
||||
75oGD1Acct+AFAxqf4aLDAf7XawNMTXYFmMICUtzJ/TlP4XiuSJgyt6tUvbE0SPq
|
||||
PEP1iEohJCBVZrN1F1/rxW1AYKdXtso97iszObbTiHFIYyqqvBGMofgKiZXhtsLg
|
||||
UCm7umD5SMeDEZWD+gGjtThepWbi+1eQezgolUMF/fECgYEA32S+VzgVwd5YNql/
|
||||
8/rYKys7asacR6MZ6MP3zTpu8JU4NhuEnRi97J2nm/r4iwCO+TI1YC72r47iImp0
|
||||
BQhs/4BMizZurMbEc7lvfgiDVZKCnV0iyfmi1k/K4IgVHUAFFX8JG5zSrT1eKXdh
|
||||
cGrPU5UHO2F8iqaX2e6a/haha30CgYEA00G6m+v8gj2vb5h3bXnY+WPBatRdbpqn
|
||||
DoLA/tASWhioY0lisiiOiziIFpeRjOQ6JEqgt+ro0yTKksHX54ti0yHL2QFi8acM
|
||||
wXHTEHNo2S22DAe1fbUQuwbYzexxdscgqK+u2OBTQb9Ji7SzyMfPRZ5QdgRrri83
|
||||
1Fo7+N86TM0CgYAB1Jh+rHX5LbI5WHA09pQ43lTRTilPqPV4Y8qvAtCP5hkc0GLo
|
||||
yqAbxTrvW0IYGXwSbKflTt00mQ4fTBIBTI1gFpQJ+/syLTrE2/se5ED3PYkWcwHq
|
||||
98Gu0d6Osm7B25lvEKhpcoKDauJPoqvIuQdT3v+9K9JSbIUIAx2AAX13HQKBgECN
|
||||
ozImCEDcDJGzKzs+snhybRXx0qMLiuS6O7MhbZouUrYUJJ6AGh6cpakRo55D1yhj
|
||||
zXylwYNTiLsTlJ/iTc5qU1n6PHvPKeyqlW4/ddh3SVuft2u0OmqMCw/RolJDQs2I
|
||||
8Yq/8XDzvMt96jn+JG4HlFqbuzO8pfizogPIYo45AoGBAIkCD7iW7TMI38npwgbt
|
||||
nnA/DiMdNorsUzp/zQdzGb4QGGldVSsIk+sgJkNMAMC9zJ2ih4jh2M/Lr1N3FsOC
|
||||
PVReoeF9/PMjy0Hbdyyzd6XQhW+KLiyibgwMkdRYrAD0jXaSgDnwzIff2aPS1n/m
|
||||
7eRMhYiUVDxVVO8REWVlEmlr
|
||||
-----END PRIVATE KEY-----
|
|
@ -23,7 +23,6 @@
|
|||
"iso_checksum": "none",
|
||||
"disk_image": true,
|
||||
"format": "qcow2",
|
||||
"vnc_bind_address": "0.0.0.0",
|
||||
"disk_size": "{{ user `image_size` }}",
|
||||
"ssh_username": "root",
|
||||
"ssh_password": "cadoles",
|
||||
|
@ -31,13 +30,17 @@
|
|||
"accelerator": "kvm",
|
||||
"net_device": "virtio-net",
|
||||
"disk_interface": "virtio",
|
||||
"ssh_wait_timeout": "45m",
|
||||
"ssh_wait_timeout": "5m",
|
||||
"boot_wait": "5s",
|
||||
"output_directory": "{{ user `output_dir` }}",
|
||||
"vm_name": "{{ user `image_name` }}.img",
|
||||
"headless": true,
|
||||
"cpus": "2",
|
||||
"memory" : "4096"
|
||||
"qemuargs": [
|
||||
[
|
||||
"-m",
|
||||
"2048"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"provisioners": [
|
||||
|
@ -64,22 +67,12 @@
|
|||
{
|
||||
"type": "ansible",
|
||||
"playbook_file": "{{user `eole_playbooks`}}/eole.yml",
|
||||
"extra_arguments": [
|
||||
"--extra-vars",
|
||||
"VM_NAME={{ user `vm_name` }} EOLE_VERSION={{ user `eole_version` }}",
|
||||
"--extra-vars",
|
||||
"HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"
|
||||
]
|
||||
"extra_arguments": [ "-vvvv", "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||
},
|
||||
{
|
||||
"type":"ansible",
|
||||
"playbook_file":"{{ user `eole_playbooks` }}/provision.yml",
|
||||
"extra_arguments": [
|
||||
"--extra-vars",
|
||||
"VM_NAME={{ user `vm_name` }} EOLE_VERSION={{ user `eole_version` }}",
|
||||
"--extra-vars",
|
||||
"HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"
|
||||
]
|
||||
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||
}
|
||||
],
|
||||
"post-processors": [
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue