Changer les paramètres IP en ACL de conoha avec python

Fondamentalement, il suffit d'ajouter et de mettre à jour des règles de groupe de sécurité, de sorte qu'un groupe de sécurité a déjà été défini pour la cible.

Une petite explication

code

set_acl.py


#!/usr/bin/env python
import requests
import json
import os

class set_rule():

        def __init__(self): #Initialisation
                my_ip = ""
                my_token = ""
                my_rule =""

        def set_data(self,rule): #Ensemble d'identifiant de groupe de sécurité, jeton, IP actuelle
                self.my_rule = rule
                with open('my_ip.txt','r') as f:
                        self.my_ip = f.read()

                with open('my_token.txt','r') as f:
                        self.my_token = f.read()

        def remove(self): #Supprimer les anciennes informations d'enregistrement
                rule_data = ''
                rule_flug = os.path.exists("./my_rule.txt")

                if rule_flug: #Ne pas supprimer si le fichier n'existe pas
                        with open('my_rule.txt', 'r') as f:
                                rule_data = f.read()
                        url='https://networking.tyo1.conoha.io/v2.0/security-group-rules/'+rule_data
                        header={'Accept':'application/json','X-Auth-Token':''}
                        header['X-Auth-Token']=self.my_token
                        r = requests.delete(url,headers=header)
                        print "delete_rule_data="+rule_data

                if rule_flug == False:
                        print "no_rule_data"

        def set_ip(self): #Ajouter une règle au groupe de sécurité Paramètre pour autoriser la communication TCP à partir d'une adresse IP spécifiée externe, aucune restriction de port
                url = "https://networking.tyo1.conoha.io/v2.0/security-group-rules"
                header = {'Accept':'application/json','X-Auth-Token':''}
                header['X-Auth-Token']=self.my_token
                data = {"security_group_rule":{"direction": "ingress","ethertype": "IPv4","security_group_id":"","protocol":"tcp" ,"remote_ip_prefix":""}}
                data["security_group_rule"]["security_group_id"]=self.my_rule
                data["security_group_rule"]["remote_ip_prefix"]=self.my_ip

                r = requests.post(url,data=json.dumps(data),headers=header)

                with open('rule_data.json','w') as f:
                        f.write(r.text)

                with open('rule_data.json','r') as f:
                        jsonData = json.loads(f.read())

                with open('my_rule.txt','w') as f: #ID de règle d'enregistrement
                        f.write(jsonData["security_group_rule"]["id"])
                        print "set_rule="+jsonData["security_group_rule"]["id"]

def set_rule_main(group): #Traitement principal
        groupid = group
        rule_setter = set_rule()
        rule_setter.set_data(groupid)
        rule_setter.remove()
        rule_setter.set_ip()


if __name__ == '__main__':
        set_rule_main("ID du groupe de sécurité")

Pour les mises à jour uniquement, Get Token et Get IP et cette fois Importez le script de et utilisez-le pour le traitement par lots.

Exemple d'utilisation

set_acl_main.py


#!/usr/bin/env python
import ip
import get_token
import set_acl

get_ip_url = "http://www.axisnetworks.biz/tools/gip/"
user = 'XXXXXX'
key = 'XXXXXX'
tenantId = 'XXXXXXX'
security_group = "XXXXXXXXX"

if __name__ == '__main__':
        ip.ip_get(get_ip_url)
        get_token.token_get_main(user,key,tenantId)
        set_acl.set_rule_main(security_group)

J'avais défini mon adresse IP domestique dans l'ACL, mais lorsque mon routeur domestique a redémarré, l'adresse IP a changé et il était difficile de la réinitialiser à ce moment-là, alors je l'ai créée, mais lorsque j'ai changé la ligne récemment, c'était presque Ce n'est plus nécessaire.

Recommended Posts

Changer les paramètres IP en ACL de conoha avec python
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
Comment spécifier des attributs avec Mock of Python
Mémo connecté à HiveServer2 d'EMR avec python
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Connectez-vous à BigQuery avec Python
Enregistrez une adresse IP globale avec python
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
[Python] Changer de type avec les pandas
Modifier les paramètres de nouvelle tentative avec boto3
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Comment changer la version de Python
J'ai essayé de trouver l'entropie de l'image avec python
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Je souhaite spécifier une autre version de Python avec pyvenv
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Application Web avec Python3.3.1 + Bottle (1) - Changer le moteur de modèle en jinja2
[Raspi4; Introduction au son] Enregistrement stable de l'entrée sonore avec python ♪
Essayez Juniper JUNOS PyEz (bibliothèque python) Memo 3 ~ Modifier les paramètres avec PyEz ~
Modifier les paramètres d'un nœud dans un super nœud avec le script SPSS Modeler Python
Récupérez la source de la page à charger indéfiniment avec python.
Activé pour convertir PNG en JPG avec Pillow of Python
Python: comment utiliser async avec
Système de notation IPynb réalisé avec TA d'introduction à la programmation (Python)
Comment modifier le niveau de journalisation d'Azure SDK pour Python
Lien pour commencer avec python
[Python] Ecrire dans un fichier csv avec Python
Comment changer le SQLite3 de Django téléchargé sur python n'importe où avec juste une interface graphique
Essayez d'exploiter Facebook avec Python
Sortie vers un fichier csv avec Python
Changer le codage par défaut de python en utf-8
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Exemple à utiliser après l'authentification OAuth de l'API BOX avec Python
N'hésitez pas à changer l'étiquette de légende avec Seaborn en python
J'ai essayé de créer une liste de nombres premiers avec python
Premiers pas avec Python Bases de Python
Convertir la liste en DataFrame avec python
Conversion MP3 → WAV avec Python
Pour faire une récursion avec Python2
Comment démarrer avec Python
J'ai essayé de corriger "J'ai essayé la simulation probabiliste du jeu de bingo avec Python"
Jeu de vie avec Python! (Le jeu de la vie de Conway)
Que faire avec la sortie de PYTHON?
10 fonctions du "langage avec batterie" python
Comment calculer la date avec python
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Implémentation de la méthode Dyxtra par python
Déplacer les données vers LDAP avec python Change / Delete (Writer et Reader)
Publiez facilement sur Twitter avec Python 3
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python