>  기사  >  백엔드 개발  >  Python을 사용하여 호스트 배치 관리 구현

Python을 사용하여 호스트 배치 관리 구현

高洛峰
高洛峰원래의
2017-03-26 17:51:421143검색

일상적인 운영 및 유지 관리 작업에서는 일괄 호스트 호스트를 사용하는 것이 매우 일반적입니다. 시중에는 많은 호스트 일괄 관리 소프트웨어가 있지만 때로는 이러한 소프트웨어가 우리의 요구 사항을 완전히 충족할 수 없습니다. Python은 호스트 배치 관리를 위한 모듈을 제공합니다. 오늘은 Python을 사용하여 호스트 배치 관리를 수행하는 방법을 살펴보겠습니다.

Python은 주로 paramiko, fabric 및 pexpect의 세 가지 호스트 배치 관리 모듈을 제공합니다. 주로 타사 모듈인 paramiko 모듈에 대해 이야기합니다.

설치: pip install paramiko 또는 yum install python-paramiko. 두 설치 모두 실패하면 소스 코드를 사용하여 설치할 수 있습니다.

소스코드 패키지 다운로드 주소: https://github.com/paramiko/paramiko/archive/master.zip

공통작업:

ssh = paramiko.SSHClient() //인스턴스화 , ssh 세션 클래스

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) //첫 번째 연결에 대한 자동 응답은 yes입니다

ssh.connect('server ip', port, 'username ', 'password') / /서버에 연결

stdin,stdout,stderr = ssh.exec_command("command") //명령어를 실행하면 표준 출력, 명령이 성공적으로 반환됩니다. 실패하면 반환됩니다

ssh.close()                             / /연결 닫기

업로드, 다운로드:

get_put = paramiko.Transport((ip,port)) //서버 IP 및 포트(SFTP 사용 시 사용)

get_put .connect(username="root", 비밀번호="123.com") //서버에 연결, 사용자 이름 및 비밀번호

sftp = paramiko.SFTPClient.from_transport(get_put) //SFTP 프로토콜 사용

sftp.put(업로드할 파일, 업로드한 파일이 저장되는 위치) //업로드

sftp. get(다운로드한 파일의 위치, 다운로드가 저장된 위치) //Download

host 배치 관리:

#!/usr/bin/python

#-*- 코딩: utf-8 -*-

paramiko 가져오기

os 가져오기

def Connect(ip='127.0.0.1',Port=22,user ='root',pwd='123.com'):

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh .connect(호스트 이름=ip, 포트=포트, 사용자 이름=user, 비밀번호=pwd) #서버에 연결

SSH 반환                                                     | 🎜>

if len( __ip) == 2:                                                                                                   ' s ' ‐ ‐ ‐ ‐ ‐ 1 ip_range = int(__ip[1])           #IP 검색

의 최대값 호스트_ip_split = ip_add.split('.') # .

host_ip = int(host_ip_split.pop()) # 해당 IP의 최소값을 가져옵니다

ip_3 = '.'.join(host_ip_split)+' .' # 최소 IP 값을 제거한 나머지 부분을 다시 연결합니다

host_add_range = range(host_ip,ip_range+1) # 연결 IP 범위

ADD_POOL = []

Host_ADD_RANGE의 I FOR:

ADD = IP_3+STR (i)# >

                                                                                                                                                      == 1:                       #입력이 단일 주소인 경우

valid_ip = __ip[0]

= valid_ip.split('.')[0:4] #감지 IP의 합법성

[ ip_value의 i에 대한 int(i) ]

                                                                                                                           > Fa = True

Fa:

ip = raw_ 입력(' IP 주소 또는 주소 범위를 입력하세요: ')

제외_ip = raw_input('제외할 주소를 입력하세요: ' ')

시도:

ip_list = IP_ADD(ip) # 사용자가 입력한 IP를 함수로 처리

if include_ip.strip(): Do you want 주소 풀에서 주소 제외

Exclude_add = Exclude_ip.split (' ,') # 제외 형식 정의

[ip_list.remove (i) for I in Exclude_add] # >

            Fa = False                                      ~

                                                                                                                               if stdout 사용:

위 내용은 Python을 사용하여 호스트 배치 관리 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.