From 4708a16bdff689b376f13feffbfdba1ddec27e51 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 9 Apr 2020 08:12:40 +0200 Subject: [PATCH 1/4] add quote for response --- provisioning_example.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/provisioning_example.sh b/provisioning_example.sh index 17d08d7..6b76867 100755 --- a/provisioning_example.sh +++ b/provisioning_example.sh @@ -31,7 +31,7 @@ verif() { for V in creole.reseau.unbound_route_address creole.reseau.unbound_domain_name creole.serveur_dns.unbound_local_zones creole.reseau.unbound_ip_address_cidr; do i=$((i+1)) R=$(cucchiaiata-cli setting.session.$1.get -s $S -n $V | jq -Mcr .content[]) - [ $R = "${argv[i]}" ] + [ "$R" = "${argv[i]}" ] done } @@ -113,7 +113,7 @@ cucchiaiata-cli setting.template.generate -s dns.cadoles.com cucchiaiata-cli setting.servermodel.dependency.add -m aca -a openssh -o cadoles -e last S=$(cucchiaiata-cli setting.session.server.start -s dns.cadoles.com | jq -r .session_id) R=$(cucchiaiata-cli setting.session.server.get -s $S -n creole.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) -[ $R = "[]" ] +[ "$R" = "[]" ] cucchiaiata-cli setting.session.server.stop -s $S S=$(cucchiaiata-cli setting.session.servermodel.start -m aca -e last| jq -r .session_id) @@ -122,7 +122,7 @@ cucchiaiata-cli setting.session.servermodel.stop -s $S -a S=$(cucchiaiata-cli setting.session.server.start -s dns.cadoles.com | jq -r .session_id) R=$(cucchiaiata-cli setting.session.server.get -s $S -n creole.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) -[ $R = '["admin.cadoles.com"]' ] +[ "$R" = '["admin.cadoles.com"]' ] cucchiaiata-cli setting.session.server.stop -s $S # Regenerate configuration From 932fbc18e21e4eeddd60e08dfe0f371f05012062 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 9 Apr 2020 08:31:54 +0200 Subject: [PATCH 2/4] debug in config file could be 'false'w --- src/cucchiaiata/config.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cucchiaiata/config.py b/src/cucchiaiata/config.py index e440306..26db22c 100644 --- a/src/cucchiaiata/config.py +++ b/src/cucchiaiata/config.py @@ -26,10 +26,10 @@ version: {version}""" config = load(stream, Loader=SafeLoader) except YAMLError as err: raise Exception(_('Error when creating the config file {}').format(err)) - + self.url = config['url'] self.version = config['version'] - self.debug = 'debug' in config + self.debug = config.get('debug', False) self.remote_url = 'http://{}/api/{}'.format(self.url, self.version) self.token_file = join(expanduser("~"), '.zephir-client.jwt.token') self.indent = config.get('indent', 2) From 58370148bcc4136a8cb082a48526aa6f57c1e3bc Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 9 Apr 2020 08:34:08 +0200 Subject: [PATCH 3/4] manage no argument set to script/cucchiaiata-cli commandline tool --- script/cucchiaiata-cli | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/script/cucchiaiata-cli b/script/cucchiaiata-cli index 39be057..4f24fdd 100755 --- a/script/cucchiaiata-cli +++ b/script/cucchiaiata-cli @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/python3 """Zephir-cmd-input script """ from sys import exit, argv @@ -10,8 +10,8 @@ from cucchiaiata.i18n import _ def main(): try: - if argv[1] in ['setting.session.server.configure', - 'setting.session.servermodel.configure']: + if len(argv) > 2 and argv[1] in ['setting.session.server.configure', + 'setting.session.servermodel.configure']: Configuration().get() else: parser = Parser() From 39206076f1295f9c25c32e0d93eeef1f7572f8b9 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 12 Aug 2020 08:24:10 +0200 Subject: [PATCH 4/4] update provisioning_example.sh file --- provisioning_example.sh | 155 +++++++++++++++++++++++++--------------- 1 file changed, 97 insertions(+), 58 deletions(-) diff --git a/provisioning_example.sh b/provisioning_example.sh index 6b76867..73c4e24 100755 --- a/provisioning_example.sh +++ b/provisioning_example.sh @@ -1,96 +1,134 @@ #!/usr/bin/env bash + +# Configuration +# -> base (cadoles' servermodel) +# |-> cluster (servermodel) +# | '-> node1.cadoles.com (server) +# | +# |-> aca (servermodel) + unbound (AS) + openssh (AS) +# | '-> etab1 (servermodel) -------------------, +# | | +# '-> fedora-32 (cadoles' servermodel) | +# '-> unbound (servermodel) + unbound (AS) --| +# '-> unbound_etab1 (servermodel) +# '-> dns.cadoles.com (server) + +# Site and zone +# + = = = = = = = = = = = = = = = = = = = = = = = + +# " SITE cluster " +# " " +# " +-------------------+ " +# " | node1.cadoles.com | "-----------+ +# " | | " | +# " +-------------------+ " | +# " " +~~~~~~~~+ +# + = = = = = = = = = = = = = = = = = = = = = = = + ! ZONE ! +# ! pedago ! +# + = = = = = = = = = = = = = = = = = = = = = = = + +~~~~~~~~+ +# " SITE etab1 " | +# " +-----------------+ " | +# " | dns.cadoles.com | "-----------+ +# " | | " +# " +-----------------+ " +# " " +# + = = = = = = = = = = = = = = = = = = = = = = = + # -# + = = = = = = = = = = = = = = = = = = = = = = = = = = = + -# " SITE cluster " -# " +---------------------+ " -# " | NEBULACLUSTER | " -# " | cluster.cadoles.com | " -# " +---------------------+ " -# " | " -# " +-------------------+ " -# " | NODE | "-----------+ -# " | node1.cadoles.com | " | -# " +-------------------+ " | -# " | " +~~~~~~~~+ -# + = = = = = = = = = = = = = | = = = = = = = = = = = = = + ! ZONE ! -# | ! pedago ! -# + = = = = = = = = = = = = = | = = = = = = = = = = = = = + +~~~~~~~~+ -# " SITE etab1 | " | -# " +-----------------+ " | -# " | VM DNS | "-----------+ -# " | dns.cadoles.com | " -# " +-----------------+ " -# " " -# + = = = = = = = = = = = = = = = = = = = = = = = = = = = + -# + +# Cluster description: +# +-----------------------------+ +# + cluster.cadoles.com + +# + + +# + +--------------------+ + +# + + node1.cadoles.com + + +# + + + + +# + + + + +# + +--------------------+ + +# + + +# +-----------------------------+ + +# Cluster execution: +# +-----------------------------+ +# + cluster.cadoles.com + +# + + +# + +--------------------+ + +# + + dns.cadoles.com + + +# + + + + +# + + + + +# + +--------------------+ + +# + + +# +-----------------------------+ + set -xe verif() { i=0 argv=("$@") - for V in creole.reseau.unbound_route_address creole.reseau.unbound_domain_name creole.serveur_dns.unbound_local_zones creole.reseau.unbound_ip_address_cidr; do + for V in configuration.reseau.unbound_route_address configuration.reseau.unbound_domain_name configuration.serveur_dns.unbound_local_zones configuration.reseau.unbound_ip_address_cidr; do i=$((i+1)) - R=$(cucchiaiata-cli setting.session.$1.get -s $S -n $V | jq -Mcr .content[]) + R=$(cucchiaiata-cli "setting.session.$1.get" -s "$S" -n "$V" | jq -Mcr .content[]) [ "$R" = "${argv[i]}" ] done } -# Import EOLE -cucchiaiata-cli setting.source.create -o cadoles -u http://localhost -cucchiaiata-cli setting.source.release.create -o cadoles -r 2020.1.1 -e last -cucchiaiata-cli setting.applicationservice.dataset.updated -o cadoles -e last -cucchiaiata-cli setting.servermodel.dataset.updated -o cadoles -e last +# Import Cadoles seed +cucchiaiata-cli setting.source.create -o cadoles -d /srv/risotto/seed/cadoles -# Create a new user and set role 'server_rw' for this server +# Create a new user and set role 'server_rw' for the server dns.cadoles.com cucchiaiata-cli user.user.create -u gnunux -n gnunux -s gnunux cucchiaiata-cli user.role.create -u gnunux -o 'server_rw' -a 'Server.ServerName' -v dns.cadoles.com -# A servermodel for node in cluster -cucchiaiata-cli setting.servermodel.create -m cluster -d "Node in the cluster" -p base -o cadoles -e last - # Heritage ## ACA cucchiaiata-cli setting.servermodel.create -m aca -d Aca -p base -o cadoles -e last cucchiaiata-cli setting.servermodel.dependency.add -m aca -a unbound -o cadoles -e last + S=$(cucchiaiata-cli setting.session.servermodel.start -m aca -e last| jq -r .session_id) verif servermodel null null [] null -cucchiaiata-cli setting.session.servermodel.configure -s $S --creole.reseau.unbound_route_address 192.168.1.2 -cucchiaiata-cli setting.session.servermodel.configure -s $S --creole.serveur_dns.unbound_allowed_client_cidr 192.168.1.0/24 +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --configuration.reseau.unbound_route_address 192.168.1.2 +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --configuration.serveur_dns.unbound_allowed_client_cidr 192.168.1.0/24 verif servermodel 192.168.1.2 null [] null -cucchiaiata-cli setting.session.servermodel.stop -s $S -a +cucchiaiata-cli setting.session.servermodel.stop -s "$S" -a ## etab1 cucchiaiata-cli setting.servermodel.create -m etab1 -d "Etab 1" -p aca -o internal -e last + S=$(cucchiaiata-cli setting.session.servermodel.start -m etab1 -e last| jq -r .session_id) -cucchiaiata-cli setting.session.servermodel.configure -s $S --creole.reseau.unbound_domain_name dns.cadoles.com +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --configuration.reseau.unbound_domain_name dns.cadoles.com verif servermodel 192.168.1.2 dns.cadoles.com [] null -cucchiaiata-cli setting.session.servermodel.stop -s $S -a +cucchiaiata-cli setting.session.servermodel.stop -s "$S" -a ## unbound -cucchiaiata-cli setting.servermodel.create -m unbound -d "generic unbound configuration" -p fedora-31 -o cadoles -e last +cucchiaiata-cli setting.servermodel.create -m unbound -d "generic unbound configuration" -p fedora-32 -o cadoles -e last cucchiaiata-cli setting.servermodel.dependency.add -m unbound -a unbound -o cadoles -e last + S=$(cucchiaiata-cli setting.session.servermodel.start -m unbound -e last| jq -r .session_id) -cucchiaiata-cli setting.session.servermodel.configure -s $S --creole.serveur_dns.unbound_local_zones cadoles.com -cucchiaiata-cli setting.session.servermodel.filter -s $S -n unbound -cucchiaiata-cli setting.session.servermodel.configure -s $S --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.hostname_cadoles_com toto titi -cucchiaiata-cli setting.session.servermodel.configure -s $S --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.ip_cadoles_com 0 192.168.1.25 -cucchiaiata-cli setting.session.servermodel.configure -s $S --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.type_cadoles_com 1 CNAME -cucchiaiata-cli setting.session.servermodel.configure -s $S --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.cname_cadoles_com 1 toto.cadoles.com -cucchiaiata-cli setting.session.servermodel.filter -s $S -n creole +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --configuration.serveur_dns.unbound_local_zones cadoles.com +cucchiaiata-cli setting.session.servermodel.filter -s "$S" -n unbound +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.hostname_cadoles_com toto titi +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.ip_cadoles_com 0 192.168.1.25 +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.type_cadoles_com 1 CNAME +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --unbound.unbound_zone_cadoles_com.hostname_cadoles_com.cname_cadoles_com 1 toto.cadoles.com +cucchiaiata-cli setting.session.servermodel.filter -s "$S" -n configuration verif servermodel null null '["cadoles.com"]' null -cucchiaiata-cli setting.session.servermodel.stop -s $S -a +cucchiaiata-cli setting.session.servermodel.stop -s "$S" -a ## unbound_etab1 cucchiaiata-cli setting.servermodel.create -m unbound_etab1 -d "unbound configuration for etab1" -p etab1 unbound -o internal -e last + S=$(cucchiaiata-cli setting.session.servermodel.start -m unbound_etab1 -e last | jq -r .session_id) verif servermodel 192.168.1.2 dns.cadoles.com '["cadoles.com"]' null +cucchiaiata-cli setting.session.servermodel.stop -s "$S" -a -# Create a site, a zone and servers -cucchiaiata-cli infra.site.create -i etab1 -d "Etab 1" +# Create sites and zone cucchiaiata-cli infra.site.create -i cluster -d "Cluster" +cucchiaiata-cli infra.site.create -i etab1 -d "Etab 1" cucchiaiata-cli infra.zone.create -z pedago -d "Pedago" -s etab1 cluster -n "192.168.1.0/24" -t "192.168.1.10" -e "192.168.1.100" -q 192.168.1.1 -g 192.168.1.254 +# Create a servermodel for node in cluster and a server "node1" +cucchiaiata-cli setting.servermodel.create -m cluster -d "Node in the cluster" -p base -o cadoles -e last cucchiaiata-cli infra.server.create -s node1.cadoles.com -d node1 -m cluster -e last -i cluster -z pedago + +# Create a new server "dns" cucchiaiata-cli infra.server.create -s dns.cadoles.com -d description -m unbound_etab1 -e last -i etab1 -z pedago # Create a cluster with one node and one VM @@ -100,10 +138,10 @@ cucchiaiata-cli provider.factory.server.add -s dns.cadoles.com -c cluster.cadole # Configure server S=$(cucchiaiata-cli setting.session.server.start -s dns.cadoles.com | jq -r .session_id) -cucchiaiata-cli setting.session.server.configure -s $S --creole.reseau.unbound_ip_address_cidr 192.168.1.1/24 +cucchiaiata-cli setting.session.server.configure -s "$S" --configuration.reseau.unbound_ip_address_cidr 192.168.1.1/24 cucchiaiata-cli setting.session.server.validate -s $S verif server 192.168.1.2 dns.cadoles.com '["cadoles.com"]' 192.168.1.1/24 -cucchiaiata-cli setting.session.server.stop -s $S -a +cucchiaiata-cli setting.session.server.stop -s "$S" -a # Generate configuration cucchiaiata-cli setting.config.configuration.server.deploy -s dns.cadoles.com @@ -111,19 +149,20 @@ cucchiaiata-cli setting.template.generate -s dns.cadoles.com # Add OpenSSH dependency cucchiaiata-cli setting.servermodel.dependency.add -m aca -a openssh -o cadoles -e last + S=$(cucchiaiata-cli setting.session.server.start -s dns.cadoles.com | jq -r .session_id) -R=$(cucchiaiata-cli setting.session.server.get -s $S -n creole.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) +R=$(cucchiaiata-cli setting.session.server.get -s "$S" -n configuration.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) [ "$R" = "[]" ] -cucchiaiata-cli setting.session.server.stop -s $S +cucchiaiata-cli setting.session.server.stop -s "$S" S=$(cucchiaiata-cli setting.session.servermodel.start -m aca -e last| jq -r .session_id) -cucchiaiata-cli setting.session.servermodel.configure -s $S --creole.serveur_ssh.ssh_allow_networks admin.cadoles.com -cucchiaiata-cli setting.session.servermodel.stop -s $S -a +cucchiaiata-cli setting.session.servermodel.configure -s "$S" --configuration.serveur_ssh.ssh_allow_networks admin.cadoles.com +cucchiaiata-cli setting.session.servermodel.stop -s "$S" -a S=$(cucchiaiata-cli setting.session.server.start -s dns.cadoles.com | jq -r .session_id) -R=$(cucchiaiata-cli setting.session.server.get -s $S -n creole.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) +R=$(cucchiaiata-cli setting.session.server.get -s "$S" -n configuration.serveur_ssh.ssh_allow_networks | jq -Mcr .content[]) [ "$R" = '["admin.cadoles.com"]' ] -cucchiaiata-cli setting.session.server.stop -s $S +cucchiaiata-cli setting.session.server.stop -s "$S" # Regenerate configuration cucchiaiata-cli setting.config.configuration.server.deploy -s dns.cadoles.com