OVH Application Key
ovh_application_key
s
OVH Application Secret
ovh_application_secret
s
OVH Consumer Key
ovh_consumer_key
s
OVH Endpoint
ovh_endpoint
o
OVH Zone Name
ovh_zone_name
your_zone.name
ovh-eu
ovh-eu
ovh-eu
10
ovh-us
ovh-us
ovh-us
20
ovh-ca
ovh-ca
ovh-ca
30
soyoustart-eu
soyoustart-eu
soyoustart-eu
40
soyoustart-ca
soyoustart-ca
soyoustart-ca
50
kimsufi-eu
kimsufi-eu
kimsufi-eu
60
kimsufi-ca
kimsufi-ca
kimsufi-ca
70
Register OVH DNS Record
python_code
# ----------------
# Tower properties
# ----------------
cetmix_tower = env["cetmix.tower"]
# Ensure the domain in your server URL matches your OVH DNS Zone name!
# Example: If your DNS Zone is "example.com", your URL should be "*.example.com"
instance_url = {{ tower.server.url }}
ovh_endpoint = env["cx.tower.variable.option"].get_by_reference("option_ovh_endpoint_eu").value_char
ovh_application_key = #!cxtower.secret.ovh_application_key!#
ovh_application_secret = #!cxtower.secret.ovh_application_secret!#
ovh_consumer_key = #!cxtower.secret.ovh_consumer_key!#
ovh_zone_name = {{ ovh_zone_name }}
# ----------------
# Request settings
# ----------------
path = "/domain/zone/"+ovh_zone_name+"/record"
# Subdomain extraction with tldextract:
sub_domain = tldextract.extract(instance_url).subdomain
# Send request to Ovh
exit_code = 0
message = ""
try:
client = ovh.Client(
endpoint=ovh_endpoint,
application_key=ovh_application_key,
application_secret=ovh_application_secret,
consumer_key=ovh_consumer_key
)
records = client.get(path, subDomain=sub_domain, fieldType="A")
if not records:
records = client.post(
path,
fieldType="A",
subDomain=sub_domain,
target={{ tower.server.ipv4 }},
ttl=3600
)
client.post("/domain/zone/" + ovh_zone_name + "/refresh")
if records:
exit_code = 0
message = "subDomain " + sub_domain + " registered"
else:
exit_code = 0
message = "subDomain " + sub_domain + " already exists"
except Exception as e:
exit_code = 500
message = str(e)
result = {
"exit_code": exit_code,
"message": message,
}
Register or check DNS A record for current server in OVH DNS zone