diff --git a/provisioning_example.sh b/provisioning_example.sh index 62421da..c0d1157 100755 --- a/provisioning_example.sh +++ b/provisioning_example.sh @@ -5,77 +5,82 @@ set -xe # Import Cadoles seed #======================================================================================================= -cucchiaiata-cli v1.setting.source.create --source_name cadoles --source_directory /srv/risotto/seed/cadoles +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 --user_login gnunux --user_name gnunux --user_surname gnunux +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 # Sites and zone -# + = = = = = = = = = = = = = = = = = = = = = = = + -# " SITE site_cluster " -# " +-------------------+ " -# " | node1.cadoles.com | "-----------+ -# " +-------------------+ " +~~~~~~~~+ -# + = = = = = = = = = = = = = = = = = = = = = = = + ! ZONE ! -# ! pedago ! -# + = = = = = = = = = = = = = = = = = = = = = = = + +~~~~~~~~+ -# " SITE etab1 " | -# " +-----------------+ "-----------+ -# " | dns.cadoles.com | " -# " +-----------------+ " -# + = = = = = = = = = = = = = = = = = = = = = = = + +# + = = = = = = = = = = = + +# " SITE site_cluster " +# " "---------+ +# " " | +# + = = = = = = = = = = = + +~~~~~~~~~~+ +# ! ZONE ! +# ! internet ! +# + = = = = = = = = = = = + +~~~~~~~~~~+ +# " SITE etab1 " | +# " "---------+ +# " " +# + = = = = = = = = = = = + cucchiaiata-cli v1.infra.site.create --site_name site_cluster cucchiaiata-cli v1.infra.site.create --site_name etab1 # Zone -cucchiaiata-cli v1.infra.zone.create --zone_name pedago --sites_name etab1 site_cluster --network "192.168.1.0/24" --host_start "192.168.1.10" --host_end "192.168.1.100" --dns 192.168.1.1 --gateway 192.168.1.254 +cucchiaiata-cli v1.infra.zone.create --zone_name internet --sites_name site_cluster etab1 --network "192.168.1.0/24" --host_start "192.168.1.10" --host_end "192.168.1.100" --dns 192.168.1.1 --gateway 192.168.1.254 # Servermodels -# -> base-fedora-32 (cadoles' servermodel) -# |-> sm_cluster (servermodel) -# | '-> node1.cadoles.com (server) -# | -# |-> aca (servermodel) + unbound (AS) + openssh (AS) -# | '-> etab1 (servermodel) -----------------, -# | |--> unbound_etab1 (servermodel) -# '-> unbound (servermodel) + unbound (AS) --' '-> dns.cadoles.com (server) -## sm_cluster +# -> base-fedora-32 (Cadoles) +# |-> sm_cluster (servermodel) +# | +# '-> unbound (Cadoles) +# '-> unbound (servermodel) ----, +# | +# -> openssh (Cadoles) |--> unbound_etab1 (servermodel) +# '-> aca (servermodel) | +# '-> etab1 (servermodel) ------' cucchiaiata-cli v1.setting.servermodel.create --servermodel_name sm_cluster --applicationservices base-fedora-32 -## ACA -cucchiaiata-cli v1.setting.servermodel.create --servermodel_name aca --applicationservices unbound openssh -## etab1 -cucchiaiata-cli v1.setting.servermodel.create --servermodel_name etab1 --parents_name aca -## unbound cucchiaiata-cli v1.setting.servermodel.create --servermodel_name unbound --applicationservices unbound -## unbound_etab1 +cucchiaiata-cli v1.setting.servermodel.create --servermodel_name aca --applicationservices openssh +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 # Servers -cucchiaiata-cli v1.infra.server.create --server_name node1.cadoles.com --servermodel_name sm_cluster --site_name site_cluster --zones_name pedago -cucchiaiata-cli v1.infra.server.create --server_name dns.cadoles.com --servermodel_name unbound_etab1 --site_name etab1 --zones_name pedago +# + = = = = = = = = = = = = = = = = = = = = = = = + +# " SITE site_cluster +-------------------+ " +# " | node1.cadoles.com |---------------+ +# " +-------------------+ " | +# + = = = = = = = = = = = = = = = = = = = = = = = + +~~~~~~~~~~+ +# ! ZONE ! +# ! internet ! +# + = = = = = = = = = = = = = = = = = = = = = = = + +~~~~~~~~~~+ +# " SITE etab1 +-------------------+ " | +# " | dns.cadoles.com |---------------+ +# " +-------------------+ " +# + = = = = = = = = = = = = = = = = = = = = = = = + -# Create a cluster -cucchiaiata-cli v1.provider.factory.cluster.create --cluster_name cluster.cadoles.com --virtual_ip 192.168.1.1 --zone_name pedago -# Cluster description: -# +-----------------------------+ -# + cluster.cadoles.com + -# + +--------------------+ + -# + + node1.cadoles.com + + -# + +--------------------+ + -# +-----------------------------+ +# -> sm_cluster +# '-> node1.cadoles.com (server) +# -> unbound_etab1 +# '-> dns.cadoles.com (server) +cucchiaiata-cli v1.infra.server.create --server_name node1.cadoles.com --site_name site_cluster --zones_name internet --servermodel_name sm_cluster +cucchiaiata-cli v1.infra.server.create --server_name dns.cadoles.com --site_name etab1 --zones_name internet --servermodel_name unbound_etab1 + +# Create the cluster cluster.cadoles.com +# +-------------------------+ +-------------------------+ +# | Nodes | | VMs | +# | +--------------------+ | | +--------------------+ | +# | | node1.cadoles.com | | <---- | + dns.cadoles.com + | +# | +--------------------+ | | +--------------------+ | +# | | | | +# +-------------------------+ +-------------------------+ +cucchiaiata-cli v1.provider.factory.cluster.create --cluster_name cluster.cadoles.com --virtual_ip 192.168.1.1 --zone_name internet cucchiaiata-cli v1.provider.factory.cluster.join --cluster_name cluster.cadoles.com --node_name node1.cadoles.com -# Cluster execution: -# +-----------------------------+ -# + cluster.cadoles.com + -# + +--------------------+ + -# + + dns.cadoles.com + + -# + +--------------------+ + -# +-----------------------------+ -cucchiaiata-cli v1.provider.factory.server.add --server dns.cadoles.com --cluster_name cluster.cadoles.com --cpu 0.2 --vcpu 2 --memory 2 +cucchiaiata-cli v1.provider.factory.server.add --cluster_name cluster.cadoles.com --server dns.cadoles.com --cpu 0.2 --vcpu 2 --memory 2 #======================================================================================================= # Configuration @@ -83,24 +88,23 @@ cucchiaiata-cli v1.provider.factory.server.add --server dns.cadoles.com --cluste # Servermodel ACA S=$(cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name aca| jq -r .session_id) -cucchiaiata-cli v1.setting.session.servermodel.configure --session_id "$S" --configuration.reseau.unbound_route_address 192.168.1.2 \ - --configuration.serveur_dns.unbound_allowed_client_cidr 192.168.1.0/24 \ - --configuration.serveur_ssh.ssh_allow_networks admin.cadoles.com -cucchiaiata-cli v1.setting.session.servermodel.stop --session_id "$S" --save - -# Servermodel etab1 -S=$(cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name etab1 | jq -r .session_id) -cucchiaiata-cli v1.setting.session.servermodel.configure --session_id "$S" --configuration.reseau.unbound_domain_name dns.cadoles.com +cucchiaiata-cli v1.setting.session.servermodel.configure --session_id "$S" --configuration.serveur_ssh.ssh_allow_networks admin.cadoles.com cucchiaiata-cli v1.setting.session.servermodel.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.servermodel.configure --session_id "$S" --configuration.serveur_dns.unbound_local_zones cadoles.com +cucchiaiata-cli v1.setting.session.servermodel.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.servermodel.filter --session_id "$S" --namespace unbound cucchiaiata-cli v1.setting.session.servermodel.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 + --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.servermodel.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.servermodel.configure --session_id "$S" --configuration.reseau.unbound_domain_name dns.cadoles.com cucchiaiata-cli v1.setting.session.servermodel.stop --session_id "$S" --save # Server dns.cadoles.com @@ -109,6 +113,10 @@ cucchiaiata-cli v1.setting.session.server.configure --session_id "$S" --configur cucchiaiata-cli v1.setting.session.server.validate --session_id $S cucchiaiata-cli v1.setting.session.server.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