您的位置: 首页 > 新闻资讯 > 高质量代理 > 正文

云主机如何批量添加、删除安全组?

发布时间:2019年09月20日 作者: 来源:互联网

  如果有一定基础的技术人员,租用云主机当然不仅仅是把它当作一台数据储存器来用,云主机其实是能够给我们带来很多便利,通过一些设定,我们能够用云主机来完成特定操作。今天给大家分享下如何批量给大量机器添加和移除安全组。


云主机如何批量添加、删除安全组


  用公有云的思路去思考去实现一个安全稳定、可伸缩和经济的业务构架。云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概念,安全组跟防火墙功能很相似,那我的机器是要设置iptables还是要设置安全组呢?设置了安全组还要设置iptables吗?他们有什么区别?我相信很多人对这些有些困惑,建议是如果可以用安全组就不用iptables来管理机器,因为它们有本质的区别:


  第一、安全组是在宿主上面的拦截,iptables是在系统层面的拦截,也就是说如果有人想攻击你,你采用的是安全组方式,这个攻击包根本就到不了你机器上。


  第二、配置iptables是项复杂的工程,如果稍有不慎,后果是毁灭性的,我猜测有过2年运维经验小伙伴应该有把自己关在主机外面的经历,如果采用安全组这方面是可控的,即使有问题,你基本上也可以快速恢复。


  第三、iptables是在每台服务器上写大量的重复规则,而且不可以分层去管理这些规则,安全组是按层来管理机器的安全配置,只需调整你需要改动的部分就可以实现批量去管理机器。


  下面干货教程要来了,因为给几百台机器配置不同的安全组也是个大工程,如果你在控制台去操作,我想你会疯掉,所以这就说到如何去批量管理和操作这些安全组,这里用到了公有云提供的API,因为公有云j基本都有自己的API接口,所以调用他们的API来实现一些自动化操作我认为是每个使用公有云来构架自己业务的运维必须要学会的,脚本本身是在qcloudcli的基础上封装了一层,脚本如下:


  #!/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()


  这个脚本支持批量增加和删除某个安全组,-f后面接一个文件,写入实例的id的列表,-g后面是要增加和删除的安全组Id,-m后面支持add 和remove操作,就是增加或删除,脚本整体思路是先找出实例的安全组列表,然后将新的安全组Id在列表中加入或移除。


相关文章内容简介

1 云主机无法联网如何解决?

  云主机出现使用故障的时候,我们应该怎么解决?第一时间可以选择联系客服,将问题上报,然后让服务商那边来提供解决方案。但如果你是动手能力比较强的,又喜欢自己来解决问题,那么今天万变云就给你带来2个云主机使用出现问题的解决方案,供你参考。  在云主机搭建项目配置的时候,经常出现pip延迟的问题,或者其他wget的问题,这时候发现源... [阅读全文]

2 ssh连接云主机出现故障的解决方法

  云主机的普及率正在不断扩大,越来越多的企业、个人都在用云服务器。但是在使用的过程中,难免会出现这样那样的问题,遇到问题就一定是服务器坏了吗?那可不一定,具体问题还得具体分析。  下面,一起看看当ssh连接云主机出现故障,应该怎么解决。  ssh连接接云主机:  ssh∵root@123.59.xx.xx  报错:THE∵AUTHENTICITY∵OF∵HOST∵XX∵CAN’T∵BE∵E... [阅读全文]

推荐阅读

  1. 07

    2020-01

    用户怎么选择到合适的云服务器?

    网络时代,每个人都在追求着更好、更快的效率,技术不断的发展,软件不断的完善。我们进入到了云时代,云主机、vps、虚拟主机等服务器诞生了。

  2. 28

    2019-06

    从几个角度分析虚拟主机与VPS主机

    从几个角度分析虚拟主机与VPS主机,通过详细的了解,我们可以知道到底选择虚拟主机还是VPS主机。伴随互联网经济的膨胀和发展,建站需求呈现出迅猛的增长态势,不仅传统企业亟需向线

  3. 13

    2019-12

    合适的云服务器如何选对?

    云计算行业的发展势头非常的猛烈,云端服务成为了企业争先选择的新型业务。服务器上云,已经是企业刻不容缓的工作了。可是,云服务器的类型不只是一个,怎么从其中选择到合适的云服务

  4. 16

    2019-05

    DDOS高防和高防服务器哪里不一样?

    DDOS高防和高防服务器哪里不一样?各位站长朋友,平时运营维护网站的时候,难免受到大大小小的网络攻击。这些攻击来自网络的方方面面,有着各种各样形形色色的类型和种类,让人防不胜

  5. 01

    2020-04

    测试云服务器的性能

    云服务器的性能我们只能够从使用中感受吗?其实,我们是可以经过几个小测试来亲自验证一下服务器的性能效果的,看看到底云主机的性能是否跟商家宣传的一致。

  6. 08

    2019-05

    云计算和云服务器主要是指什么?

    云计算和云服务器主要是指什么?我们的目标(cause)之一是解释技术(Technology)术语,让你知道如今的IT世界发生了什么。在这篇文章中,我们将讨论云计算(calculate),帮助并参考其他各种技术人