Rumah >Tutorial sistem >LINUX >Bagaimana untuk mengkonfigurasi kumpulan keselamatan untuk hos awan dalam kelompok dalam Python?
Perubahan terbesar untuk kakitangan operasi dan penyelenggaraan dalam beberapa tahun kebelakangan ini mungkin adalah kemunculan cloud awam lebih awal. Saya mula menggunakan Amazon Cloud sekitar tahun 2012, dan kemudian secara beransur-ansur berhubung dengan Alibaba domestik, Tencent Cloud, dsb. Memandangkan perniagaan syarikat berkembang di dalam negara, kami juga telah menggunakan banyak vendor awan awam domestik dalam beberapa tahun yang lalu, jadi dalam awan operasi dan penyelenggaraan Saya juga telah mengumpul beberapa pengalaman dalam beralih daripada mesin fizikal tradisional kepada operasi dan penyelenggaraan awan awam Saya secara peribadi berpendapat persoalan terbesar ialah sama ada anda boleh berfikir dari segi awan awam untuk mencapai seni bina perniagaan yang selamat, stabil, berskala dan menjimatkan. .
Pengendalian dan penyelenggaraan awan berbeza daripada operasi dan penyelenggaraan tradisional Contohnya, sesiapa yang memahami awan awam tahu konsep kumpulan keselamatan Fungsi kumpulan keselamatan sangat serupa dengan firewall kumpulan keselamatan pada mesin saya? Adakah saya perlu menyediakan iptables selepas menyediakan kumpulan keselamatan? Apakah perbezaan antara mereka? Saya percaya ramai orang keliru tentang perkara ini Berdasarkan pengalaman peribadi saya (kerana saya tidak pernah mengkonfigurasi iptables untuk hos awan sejak saya menghubungi Amazon), cadangan saya ialah jika anda boleh menggunakan kumpulan keselamatan, anda tidak boleh menggunakan iptables untuk. menguruskan mesin, kerana Mereka mempunyai perbezaan penting:
Pertama, kumpulan keselamatan memintas pada hos, dan iptables memintas pada tahap sistem Maksudnya, jika seseorang ingin menyerang anda, jika anda menggunakan kaedah kumpulan keselamatan, pakej serangan tidak akan sampai ke mesin anda.
Kedua, mengkonfigurasi iptables adalah projek yang rumit Jika anda tidak berhati-hati, akibatnya saya rasa mereka yang mempunyai pengalaman operasi dan penyelenggaraan selama 2 tahun harus mempunyai pengalaman menutup diri daripada hos kumpulan Aspek ini boleh dikawal, dan walaupun berlaku masalah, anda pada dasarnya boleh pulih dengan cepat.
Ketiga, iptables menulis sejumlah besar peraturan berulang pada setiap pelayan, dan peraturan ini tidak boleh diurus secara hierarki Kumpulan keselamatan mengurus konfigurasi keselamatan mesin mengikut lapisan. Anda hanya perlu melaraskan bahagian yang perlu anda ubah kumpulan.
ok, di situlah konsep diperkenalkan Seterusnya kita akan sampai ke perkara praktikal, kerana mengkonfigurasi kumpulan keselamatan yang berbeza untuk ratusan mesin juga merupakan projek besar Jika anda melakukannya pada konsol, saya fikir anda akan menjadi gila, jadi ini Apabila ia berkaitan dengan cara mengurus dan mengendalikan kumpulan keselamatan ini secara berkelompok, API yang disediakan oleh awan awam digunakan di sini Kerana awan awam j pada asasnya mempunyai antara muka API sendiri, jadi saya rasa memanggil API mereka untuk mencapai beberapa operasi automatik adalah satu kemestian bagi setiap pengguna. Anda mesti belajar cara menggunakan awan awam untuk membina operasi dan penyelenggaraan perniagaan anda sendiri Hari ini saya akan berkongsi cara menambah dan mengalih keluar kumpulan keselamatan untuk sejumlah besar mesin berdasarkan qcloudcli Skripnya adalah seperti berikut:
#!/usr/bin/env python # -*- coding:utf-8 -*- import subprocess import json import sys import argparse def R(s): return “%s[31;2m%s%s[0m”%(chr(27), s, chr(27)) def get_present_sgid(vmid): descmd = ‘/usr/bin/qcloudcli dfw DescribeSecurityGroups –instanceId ‘ + vmid.strip() p = subprocess.Popen(descmd, shell=True, stdout=subprocess.PIPE) output = p.communicate()[0] res = json.loads(output) sgid = [] for d in res[‘data’]: sid = d[‘sgId’] sgid.append(str(sid)) return sgid def make_json(vmid,sgid): pdata = {} pdata[“instanceId”] = vmid pdata[“sgIds”] = sgid pjson = json.dumps(pdata) return pjson def add_sgid(vmfile,newsid): fi = open(vmfile) for v in fi: v = v.strip() res = get_present_sgid(v) print res res.append(newsid) pjson = make_json(v,res) modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'” p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE) output = p.communicate()[0] print output def remove_sgid(vmfile,newsid): fi = open(vmfile) for v in fi: v = v.strip() res = get_present_sgid(v) res.remove(newsid) pjson = make_json(v,res) modcmd = ‘qcloudcli dfw ModifySecurityGroupsOfInstance –instanceSet ‘ + “‘[” + pjson+ “]'” p = subprocess.Popen(modcmd, shell=True, stdout=subprocess.PIPE) output = p.communicate()[0] #print output if __name__ == “__main__”: parser=argparse.ArgumentParser(description=’change sgid’, usage=’%(prog)s [options]’) parser.add_argument(‘-f’,’–file’, nargs=’?’, dest=’filehost’, help=’vmidfile’) parser.add_argument(‘-g’,’–sgid’, nargs=’?’, dest=’sgid’, help=’sgid’) parser.add_argument(‘-m’,’–method’, nargs=’?’, dest=’method’, help=’Methods only support to add or remove’) if len(sys.argv)==1: parser.print_help() else: args=parser.parse_args() if args.filehost is not None and args.sgid is not None and args.method is not None: if args.method == ‘add’: add_sgid(args.filehost, args.sgid) elif args.method == ‘remove’: remove_sgid(args.filehost, args.sgid) else: print R(‘Methods only support to add or remove’) else: print R(‘Error format, please see the usage:’) parser.print_help()
Skrip ini menyokong penambahan dan pemadaman kumpulan keselamatan tertentu dalam kelompok -f diikuti dengan fail untuk menulis senarai ID contoh -g diikuti oleh ID kumpulan keselamatan yang akan ditambah dan dipadamkan dan mengalih keluar operasi Ini bermakna menambah atau memadam Idea keseluruhan skrip adalah untuk mengetahui senarai kumpulan keselamatan contoh, dan kemudian menambah atau mengalih keluar ID kumpulan keselamatan baharu dalam senarai skrip. Rakan dialu-alukan untuk meninggalkan mesej untuk komunikasi.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi kumpulan keselamatan untuk hos awan dalam kelompok dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!