#!/usr/bin/env bash set -xe #======================================================================================================= # Import Cadoles seed #======================================================================================================= cucchiaiata-cli v1.setting.source.create --source_name Cadoles --source_directory /usr/share/risotto/seed/cadoles #======================================================================================================= # Infrastructure #======================================================================================================= # Create a new user and set role 'server_rw' for the server dns.cadoles.com cucchiaiata-cli v1.user.user.create --login gnunux \ --name gnunux \ --surname gnunux \ --email egarette@cadoles.com cucchiaiata-cli v1.user.role.create --user_login gnunux \ --role_name 'server_rw' \ --role_attribute 'Server.ServerName' \ --role_attribute_value dns.cadoles.com # Zone # +~~~~~~~~~~+ # ! ZONE ! # ! internet ! # +~~~~~~~~~~+ cucchiaiata-cli v1.infra.zone.create --zone_name internet # zone configuration S=$(cucchiaiata-cli v1.setting.session.zone.start --zone_name internet | jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.network.network "192.168.1.0/24" \ --configuration.network.host_start "192.168.1.10" \ --configuration.network.host_end "192.168.1.100" \ --configuration.network.dns 192.168.1.2 \ --configuration.network.gateway 192.168.1.254 cucchiaiata-cli v1.setting.session.validate --session_id $S cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save # Create the cluster cluster.cadoles.com # +---------------------------+ # | cluster.cadoles.com | +~~~~~~~~~~+ # | +--------------------+ |-------! ZONE ! # | | node1.cadoles.com |---|-------! internet ! # | +--------------------+ | +~~~~~~~~~~+ # +---------------------------+ cucchiaiata-cli v1.infra.cluster.create --cluster_name cluster.cadoles.com \ --zone_name internet cucchiaiata-cli v1.infra.cluster.node.create --server_name node1.cadoles.com \ --zones_name internet # configuration S=$(cucchiaiata-cli v1.setting.session.cluster.start --cluster_name cluster.cadoles.com | jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.network.virtual_ip "192.168.1.1" cucchiaiata-cli v1.setting.session.validate --session_id $S cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save # Organization, sites and zone # + = = = = = = = = = = = = = = = = = = = = + # " ORGANISATION cadoles.com " # " + = = = = = = = = = = = + " # " " SITE etab1 "----"----+ +~~~~~~~~~~+ # " + = = = = = = = = = = = + " |___! ZONE ! # " + = = = = = = = = = = = + " | ! internet ! # " " SITE etab2 "----"----+ +~~~~~~~~~~+ # " + = = = = = = = = = = = + " # + = = = = = = = = = = = = = = = = = = = = + cucchiaiata-cli v1.infra.organization.create --organization_name cadoles.com cucchiaiata-cli v1.infra.site.create --site_name etab1 \ --organization_name cadoles.com \ --zones_name internet cucchiaiata-cli v1.infra.site.create --site_name etab2 \ --organization_name cadoles.com \ --zones_name internet # Servermodels # -> base-fedora-32 (Cadoles) # |-> sm_cluster (servermodel) # | # '-> unbound (Cadoles) # '-> unbound (servermodel) ----, # | # -> openssh-server (Cadoles) |--> unbound_etab1 (servermodel) # '-> aca (servermodel) | # '-> etab1 (servermodel) ------' cucchiaiata-cli v1.setting.servermodel.create --servermodel_name sm_cluster --applicationservices base-fedora-32 cucchiaiata-cli v1.setting.servermodel.create --servermodel_name unbound --applicationservices unbound cucchiaiata-cli v1.setting.servermodel.create --servermodel_name aca --applicationservices openssh-server cucchiaiata-cli v1.setting.servermodel.create --servermodel_name etab1 --parents_name aca cucchiaiata-cli v1.setting.servermodel.create --servermodel_name unbound_etab1 --parents_name etab1 unbound # configuration # Servermodel ACA S=$(cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name aca| jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.serveur_ssh.ssh_allow_networks admin.cadoles.com cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save # Servermodel unbound S=$(cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name unbound| jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.serveur_dns.unbound_local_zones cadoles.com \ --configuration.reseau.unbound_route_address 192.168.1.2 \ --configuration.serveur_dns.unbound_allowed_client_cidr 192.168.1.0/24 cucchiaiata-cli v1.setting.session.filter --session_id "$S" --namespace unbound cucchiaiata-cli v1.setting.session.configure --session_id "$S" --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.hostname_cadoles_com toto titi \ --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.ip_cadoles_com 0 192.168.1.25 \ --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.type_cadoles_com 1 CNAME \ --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.cname_cadoles_com 1 toto.cadoles.com cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save # Servermodel unbound_etab1 S=$(cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name unbound_etab1 | jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.reseau.unbound_domain_name dns.cadoles.com cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save # Server # + = = = = = = = = = = = = = = = = = = = = = = = + # " SITE etab1 +-------------------+ " +~~~~~~~~~~+ # " | dns.cadoles.com |----"------! ZONE ! # " +-------------------+ " ! internet ! # " " +~~~~~~~~~~+ # + = = = = = = = = = = = = = = = = = = = = = = = + # -> unbound_etab1 # '-> dns.cadoles.com (server) cucchiaiata-cli v1.infra.server.create --server_name dns.cadoles.com \ --site_name etab1 \ --cluster_name cluster.cadoles.com \ --zones_name internet \ --servermodel_name unbound_etab1 # configuration S=$(cucchiaiata-cli v1.setting.session.server.start --server dns.cadoles.com | jq -r .session_id) cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.reseau.unbound_ip_address_cidr 192.168.1.2/24 cucchiaiata-cli v1.setting.session.filter --session_id "$S" --namespace opennebula cucchiaiata-cli v1.setting.session.configure --session_id "$S" --opennebula.configuration.cpu 0.2 \ --opennebula.configuration.vcpu 2 \ --opennebula.configuration.memory 2 cucchiaiata-cli v1.setting.session.validate --session_id $S cucchiaiata-cli v1.setting.session.stop --session_id "$S" --save #======================================================================================================= # Deploy #======================================================================================================= # Generate configuration cucchiaiata-cli v1.setting.config.configuration.server.deploy --server dns.cadoles.com cucchiaiata-cli v1.setting.template.generate --server dns.cadoles.com # Generate cluster's configurtion #cucchiaiata-cli v1.provider.configure -c cluster.cadoles.com #cucchiaiata-cli v1.provider.deploy --server dns.cadoles.com echo "fin"