func 대량 관리 서버 활용

14073 단어 func대량 관리
Func 소개:
Func: 전칭 Fedora Unified Network Controller: Fedora 통일 네트워크 컨트롤러는 통일 관리 모니터링 문제를 해결하기 위해 설계하고 개발한 시스템 관리 기초 프레임워크입니다. Func는 메인 컨트롤러에서 한 번에 임의의 여러 서버나 임의의 그룹을 관리하고 원격 명령을 직접 보내거나 길에서 데이터를 얻을 수 있습니다.
func 배포
시스템: CentOS 5.8 x86_64 selinux, iptables 닫기

  
  
  
  
  1. master.laoguang.me  192.168.1.22 
  2. slave1.laogunag.me  192.168.1.23 
  3. slave2.laoguang.me  192.168.1.24 

하나.설치 전 준비
1.1.ip와hostname을hosts에 비추기

  
  
  
  
  1. echo " 
  2. 192.168.1.22 master.laoguang.me  master 
  3. 192.168.1.23 slave1.laogunag.me  slave1 
  4. 192.168.1.24 slave2.laoguang.me  slave2 " >> /etc/hosts 
  5.  
  6. scp /etc/hosts slave1:/etc/ 
  7. scp /etc/hosts slave2:/etc/ 

1.2.시간 동기화 ## 제가 동기화 카드를 하지 않아서 2시간 동안 여기 있습니다. ssl v3입니다.
서버당

  
  
  
  
  1. yum -y install ntp 
  2. ntpdate ntp.api.bz 

2.모든 서버에func 설치
소프트웨어 준비:

  
  
  
  
  1. Python-2.5.2.tgz            ##func Python  
  2. wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz 
  3. pyOpenSSL-0.9.tar.gz        ##  
  4. wget http://jaist.dl.sourceforge.net/project/pyopenssl/pyopenssl/0.9/pyOpenSSL-0.9.tar.gz 
  5. func-0.28.tar.gz            ##func 
  6. wget https://fedorahosted.org/releases/f/u/func/func-0.28.tar.gz 
  7. certmaster-0.28.tar.gz      ##  
  8. wget https://fedorahosted.org/releases/c/e/certmaster/certmaster-0.28.tar.gz 

2.1python2.5를 설치했는데 func와python2.4 이하의 호환성이 좋지 않다고 합니다.
python을 설치하기 전에 gdbm-devel을 설치하십시오. 그렇지 않으면func를 시작하면 오류가 발생합니다.

  
  
  
  
  1. yum -y install gdbm-devel 
  2. tar xvf Python-2.5.2.tgz 
  3. cd Python-2.5.2 
  4. ./configure 
  5. make && make install 

2.2 pyOpenSSL-0.9 설치

  
  
  
  
  1. tar xvf pyOpenSSL-0.9.tar.gz 
  2. cd pyOpenSSL-0.9 
  3. python setup.py install 

2.3 certmaster-0.28 설치

  
  
  
  
  1. tar xvf certmaster-0.28.tar.gz  
  2. cd certmaster-0.28 
  3. python setup.py install 

2.4 func-0.28 설치

  
  
  
  
  1. tar xvf func-0.28.tar.gz 
  2. cd func-0.28 
  3. python setup.py install 

2.5 생성된 바이너리 파일은/usr/local/bin 아래에 있고,certmaster,func의 시작 스크립트의 명령은/usr/bin 아래에 있기 때문에 소프트 링크를 만듭니다.

  
  
  
  
  1. ln -s /usr/local/bin/certmaster /usr/bin/certmaster 
  2. ln -s /usr/local/bin/certmaster-request /usr/bin/certmaster-request 
  3. ln -s /usr/local/bin/certmaster-ca /usr/bin/certmaster-ca 
  4. ln -s /usr/local/bin/certmaster-sync /usr/bin/certmaster-sync 
  5. ln -s /usr/local/bin/funcd /usr/bin/funcd 
  6. ln -s /usr/local/bin/func /usr/bin/func 
  7. ln -s /usr/local/bin/func-create-module /usr/bin/func-create-module 
  8. ln -s /usr/local/bin/func-inventory /usr/bin/func-inventory 
  9. ln -s /usr/local/bin/func-transmit /usr/bin/func-transmit 
  10. ln -s /usr/local/bin/func-build-map /usr/bin/func-build-map 

셋.소프트웨어 구성
3.1 마스터 사이드, 즉 서버 사이드, 프로필을 수정할 필요가 없습니다

  
  
  
  
  1. cat /etc/certmaster/certmaster.conf  
  2. # configuration for certmasterd and certmaster-ca 
  3. [main] 
  4. autosign = no            ## ,  
  5. listen_addr =  
  6. listen_port = 51235 
  7. cadir = /etc/pki/certmaster/ca 
  8. cert_dir = /etc/pki/certmaster 
  9. certroot = /var/lib/certmaster/certmaster/certs 
  10. csrroot = /var/lib/certmaster/certmaster/csrs 
  11. certcert_extension = cert 
  12. sync_certs = False 

  
  
  
  
  1. cat /etc/certmaster/minion.conf  
  2. # configuration for minions 
  3. [main] 
  4. certmastercertmaster = certmaster   
  5. certmaster_port = 51235 
  6. log_level = DEBUG 
  7. cert_dir = /etc/pki/certmaster 

  
  
  
  
  1. cat /etc/func/minion.conf  
  2. # configuration for minions 
  3. [main] 
  4. log_level = INFO 
  5. acl_dir = /etc/func/minion-acl.d 
  6. listen_addr = 
  7. listen_port = 51234 
  8. minion_name = 
  9. method_log_dir = /var/log/func/methods/ 

3.2 slave1, slave2 사이드 설정, 즉 클라이언트 설정

  
  
  
  
  1. vim /etc/certmaster/minion.conf  
  2. [main] 
  3. certmaster = master.laoguang.me   ## master  
  4. certmaster_port = 51235 
  5. log_level = DEBUG 
  6. cert_dir = /etc/pki/certmaster 

3.3 서버 쪽에서certmaster를 사용하고 클라이언트가funcd를 시작합니다

  
  
  
  
  1. master: service certmaster start 
  2. slave1,slave2: service funcd start 
  3.  
  4. netstat -tlnp | grep python     ## ,51235 certmaster  
  5. tcp        0      0 0.0.0.0:51235            0.0.0.0:*         LISTEN   43613/python   
  6. netstat -tlnp | grep python     ## ,python func ,

사.테스트 및 사용
4.1 서버 쪽에서 몇 개의 클라이언트가 서명을 신청했는지 확인하십시오. 만약 프로필이 자동 서명이라면 그것들을 보지 못할 것입니다

  
  
  
  
  1. [root@master ~]# certmaster-ca --list 
  2. slave1.laogunag.me 
  3. slave2.laoguang.me 

4.2 서명하기

  
  
  
  
  1. certmaster-ca --sign "slave1.laoguang.me" 
  2. certmaster-ca --sign "slave2.laoguang.me" 

4.3 서명된 클라이언트 보기

  
  
  
  
  1. [root@master ~]# certmaster-ca --list-signed 
  2. slave1.laoguang.me 
  3. slave2.laoguang.me 

4.3 서버에 대한 서명 삭제

  
  
  
  
  1. certmaster-ca --clean "slave1.laoguang.me"     
  2. ## ,slave1 /etc/pki/certmaster slave1 , funcd,  


4.4 CommandModule 모듈을 사용하여 클라이언트에서 명령 실행
문법:func'hostname'call command run'command'
예: slave1에서 ifconfig eth0 실행

  
  
  
  
  1. func 'slave1.laoguang.me' call command run 'ifconfig eth0' 

4.5 ServiceModule 모듈을 사용하여 종료 등 서비스 시작
문법:func'hostname'call 서비스 start/stop/restart'서비스name'
slave2의 sshd 다시 시작

  
  
  
  
  1. func 'slave2.laoguang.me' call service restart 'sshd' 

4.6 NetworkTest 모듈을 사용하여 고객 호스트 테스트
문법:func'hostname'ping
예: 모든 클라이언트 상태 보기

  
  
  
  
  1. func '*' ping  

4.7 ProcessModule 모듈 활용 테스트
문법:funchostnamecallprocess명령
예: slave1의 메모리 사용 보기

  
  
  
  
  1. func slave1.laoguang.me call process mem 

4.8 SysctlModule을 사용하여 커널 매개변수 조정
문법:funchostnamecallsysctl명령
     func hostname call sysctl get
     func hostname call sysctl set
예: slave2의 커널 매개 변수 보기

  
  
  
  
  1. func slave2.laoguang.me call sysctl list  

예: slave1의 ip_ 보기forward 값

  
  
  
  
  1. func slave1.laoguang.me call sysctl get net.ipv4.ip_forward 

기타 모듈은 홈페이지 참조
 
5.0 그룹 정의
일부 호스트를 그룹으로 정의하고 대량 관리할 수 있다

  
  
  
  
  1. vim /etc/func/groups 
  2. [slave] 
  3. host = slave1.laoguang.me,slave2.laoguang.me 

slave 그룹의 호스트 상태 보기

  
  
  
  
  1. func '@slave' ping  

일단 여기까지 썼어요.

좋은 웹페이지 즐겨찾기