diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..598f85c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +lib/registrar/.ovh-credential.sh +lib/registrar/.ovh-credential diff --git a/lib/registrar/ovh-domain.sh b/lib/registrar/ovh-domain.sh new file mode 100755 index 0000000..83751bb --- /dev/null +++ b/lib/registrar/ovh-domain.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +# GET DOMAIN : https://eu.api.ovh.com/createToken/?GET=/domain*&POST=/domain*&PUT=/domain*&DELETE=/domain* + +function set_base { + + BASE_URL="https://eu.api.ovh.com/1.0" + source ./.ovh-credential +} + +function build_url_list_records { + zone="$1" + result="${BASE_URL}/domain/zone/$zone/record" + + fieldType="${2:-}" + subDomain="${3:-}" + any="$fieldType$subDomain" + + [[ -n $any ]] && result+="?" + [[ -n $fieldType ]] && result+="fieldType=$fieldType&" + [[ -n $subDomain ]] && result+="subDomain=$subDomain&" + result=${result::-1} + + echo "$result" +} + +function list_records { + zone="$1" + fieldType="${2:-}" + subDomain="${3:-}" + + query=$(build_url_list_records "$zone" "$fieldType" "$subDomain") + method="GET" + body="" + tstamp=$(date +%s) + sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) + signature="\$1\$$sha" + + curl -s \ + -X $method \ + -H "Content-type: application/json" \ + -H "X-Ovh-Application: $AK" \ + -H "X-Ovh-Consumer: $CK" \ + -H "X-Ovh-Signature: $signature" \ + -H "X-Ovh-Timestamp: $tstamp" \ + "$query" | yq .[] # values of array +} + +function get_record { + zone="$1" + record="$2" + method="GET" + query="${BASE_URL}/domain/zone/$zone/record/$record" + body="" + tstamp=$(date +%s) + sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) + signature="\$1\$$sha" + + curl -s \ + -X $method \ + -H "Content-type: application/json" \ + -H "X-Ovh-Application: $AK" \ + -H "X-Ovh-Consumer: $CK" \ + -H "X-Ovh-Signature: $signature" \ + -H "X-Ovh-Timestamp: $tstamp" \ + "$query" | yq -o=props +} + +##----------- +## -- MAIN -- +##----------- + +. "$MIAOU_BASEDIR/lib/init.sh" + +set_base +for i in $(list_records "$1" CNAME "$2"); do + get_record "$1" "$i" +done diff --git a/lib/registrar/ovh-me.sh b/lib/registrar/ovh-me.sh new file mode 100755 index 0000000..907e325 --- /dev/null +++ b/lib/registrar/ovh-me.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# GET DOMAIN : https://eu.api.ovh.com/createToken/?GET=/me*&POST=/me*&PUT=/me*&DELETE=/me* + +function set_base { + + BASE_URL="https://eu.api.ovh.com/1.0" + source ./.ovh-credential + +} + +function get_me { + local method query body tstamp sha signature + method="GET" + query="${BASE_URL}/me" + body="" + tstamp=$(date +%s) + sha=$(echo -n "$AS+$CK+$method+$query+$body+$tstamp" | shasum | cut -d ' ' -f 1) + signature="\$1\$$sha" + + curl -s \ + -X $method \ + -H "Content-type: application/json" \ + -H "X-Ovh-Application: $AK" \ + -H "X-Ovh-Consumer: $CK" \ + -H "X-Ovh-Signature: $signature" \ + -H "X-Ovh-Timestamp: $tstamp" \ + "$query" | yq -P +} + +. "$MIAOU_BASEDIR/lib/init.sh" + +set_base +get_me diff --git a/scripts/lxc-miaou-create b/scripts/lxc-miaou-create index c18ec55..c9ad75a 100755 --- a/scripts/lxc-miaou-create +++ b/scripts/lxc-miaou-create @@ -59,7 +59,7 @@ function create() { packages_string=$(join ', ' "${packages[@]}") timezone=$(cat /etc/timezone) - debian_repo=$(cat /etc/apt/sources.list | head -n1 | cut -d '/' -f3) + debian_repo=$(grep ^deb /etc/apt/sources.list | head -n1 | cut -d '/' -f3) user_data="$( cat <