159 lines
8.5 KiB
Bash
Executable File
159 lines
8.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -xe
|
|
|
|
function get_id() {
|
|
S=$($1)
|
|
V=$(echo $S|jq -r .session_id)
|
|
if [ $? = 0 ]; then
|
|
echo $V
|
|
else
|
|
echo $S
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
#=======================================================================================================
|
|
# 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=$(get_id "cucchiaiata-cli v1.setting.session.zone.start --zone_name internet")
|
|
cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.host.network "192.168.1.0/24" \
|
|
--configuration.host.start "192.168.1.10" \
|
|
--configuration.host.stop "192.168.1.100" \
|
|
--configuration.dns 192.168.1.2 \
|
|
--configuration.vlan_id 192 \
|
|
--configuration.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 hapy.ac-test.fr
|
|
# +---------------------------+
|
|
# | hapy.ac-test.fr | +~~~~~~~~~~+
|
|
# | +--------------------+ |-------! ZONE !
|
|
# | | node1.cadoles.com |---|-------! internet !
|
|
# | +--------------------+ | +~~~~~~~~~~+
|
|
# +---------------------------+
|
|
cucchiaiata-cli v1.infra.cluster.create --cluster_name hapy.ac-test.fr \
|
|
--zone_name internet \
|
|
--zones_name internet
|
|
cucchiaiata-cli v1.infra.cluster.node.create --node_name node1.cadoles.com \
|
|
--cluster_name hapy.ac-test.fr
|
|
|
|
# configuration
|
|
S=$(get_id "cucchiaiata-cli v1.setting.session.cluster.start --cluster_name hapy.ac-test.fr")
|
|
cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.virtual_ip "192.168.1.1"
|
|
# FIXME endpoint == https://<cluster_name>/RPC2
|
|
cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.opennebula.one_user "eoleone"
|
|
cucchiaiata-cli v1.setting.session.configure --session_id "$S" --configuration.opennebula.one_password "eole"
|
|
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)
|
|
# '-> unbound (Cadoles)
|
|
# '-> unbound (servermodel) ----,
|
|
# |
|
|
# -> openssh-server (Cadoles) |--> unbound_etab1 (servermodel)
|
|
# '-> aca (servermodel) |
|
|
# '-> etab1 (servermodel) ------'
|
|
cucchiaiata-cli v1.setting.servermodel.create --servermodel_name unbound --applicationservices_name unbound
|
|
cucchiaiata-cli v1.setting.servermodel.create --servermodel_name aca --applicationservices_name 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=$(get_id "cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name aca")
|
|
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=$(get_id "cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name unbound")
|
|
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.254 \
|
|
--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=$(get_id "cucchiaiata-cli v1.setting.session.servermodel.start --servermodel_name unbound_etab1")
|
|
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 hapy.ac-test.fr \
|
|
--zones_name internet \
|
|
--servermodel_name unbound_etab1
|
|
# configuration
|
|
sleep 1
|
|
S=$(get_id "cucchiaiata-cli v1.setting.session.server.start --server dns.cadoles.com")
|
|
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.cpu 0.2 \
|
|
--opennebula.vcpu 2 \
|
|
--opennebula.memory 2048
|
|
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.infra.cluster.deploy --cluster_name hapy.ac-test.fr
|
|
cucchiaiata-cli v1.infra.zone.deploy --zone_name internet
|
|
cucchiaiata-cli v1.infra.server.deploy --server_name dns.cadoles.com
|
|
|
|
echo "fin"
|