Ansible Ansible Anterprise

7184 단어 CentOS7Ansible
자동 운영 Ansible
Asible 개요 및 핵심 구성 요소
  • Ansible는 새로 등장한 자동화 운영 도구로 Python 개발을 바탕으로 수많은 운영 도구(puppet, cfengine,chef,func,fabric)의 장점을 집합하여 대량 시스템 설정, 대량 프로그램 배치, 대량 운행 명령 등 기능을 실현했다.
  • Ansible는 모듈을 바탕으로 작업을 하는 프레임워크 구조로 볼 수 있으며 대량 배치 능력은 Ansible가 실행하는 모듈에 의해 실현된다.간단히 말해서 Ansible은 모듈을 기반으로 다양한 작업을 수행합니다.Ansible 기본 구조는 6개 부분으로 구성된다. (1) 플러그인 연결connection plugins: 피감시단과 통신을 담당한다.(2)host inventory 호스트 목록: 지정한 조작의 호스트는 프로필에 정의된 모니터링의 호스트이다.(3)、Core modules 핵심 모듈:Ansible가 자체로 가지고 있는 모듈로 감사 모듈을 사용하여 자원을 관리된 호스트에 나누어 특정한 임무를 수행하거나 특정한 상태와 일치하도록 한다.(4), Custom modules 사용자 정의 모듈: 완전한 모듈 기능의 보정에 사용되며 관련 플러그인을 빌려 로그 기록, 메일 발송 등의 기능을 완성할 수 있다.(5),playbook: 시나리오가 여러 개의 임무를 수행할 때 반드시 노드가 여러 개의 임무를 한꺼번에 실행할 수 있도록 해야 한다.(6) Asible core 핵심 엔진

  • 설치 배포 Ansible 서비스
  • Ansible 자동화 운영 환경은 제어 호스트와 관리된 호스트로 구성되어 있으며Ansible는 SSH 프로토콜을 바탕으로 통신하기 때문에 제어 호스트가 Ansible 소프트웨어를 설치한 후 다시 시작하거나 프로그램을 진행할 필요가 없고 관리된 호스트도 어떤 에이전트를 설치하고 실행할 필요가 없다.

  • 1. Ansible 실험 사례 환경
    역할
    IP 주소
    그룹 이름
    제어 호스트
    192.168.190.130
    관리되는 호스트
    192.168.190.128
    test01
    관리되는 호스트
    1982.168.190.131
    test02
    2. 설치 구성 Ansible
    yum install - y epel-release # epel 소스 설치
    yum install ansible -y
    ansible -- version # ansible 버전 보기
    yum install tree -y
    tree/etc/ansible/#트리 구조 전시 폴더
    /etc/ansible/
    ├── ansible.cfg    #ansible     
    ├── hosts         #ansible    ,                  
    └── roles     #  

    cd/etc/ansible
    vim hosts # 호스트 목록 구성
    [test01]
    192.168.190.128
    [test02]
    192.168.190.131

    ssh-keygen -t rsa # SSH 키 기반 연결
    ssh-copy-id [email protected]# 구성 키 쌍 확인
    ssh-copy-id [email protected]
    ssh-agent bash # 상호작용 프록시 없음
    ssh-add
    Ansible 명령 기반
  • Ansible의 명령행 관리 도구는 일련의 모듈, 파라미터가 지원하며 명령 뒤에 -h 또는 -help를 추가하여 도움을 받을 수 있습니다.만약에 ansible-doc 도구를 사용하면 ansible-doc -h 또는 ansible-doc --help를 통해 도움말을 볼 수 있습니다.
  • ansible-doc는 모듈 도움말 정보를 보기 위한 도구로 주요 옵션인 l은 사용할 수 있는 모듈을 열거하고, -s는 어떤 모듈의 설명 정보와 사용 예시를 열거한다.

  • 1. command 모듈
  • Asible 관리 도구는 - m 옵션을 사용하여 사용 모듈을 지정합니다. 기본적으로command 모듈을 사용합니다. 즉, - m 옵션을 생략하면 이 모듈을 실행하고 관리된 호스트에서 실행하는 데 사용됩니다.
  •      :          data  ,          ,                       :
        (1)、  ip  date
        ansible 192.168.192.128 -m command -a 'date' 
    
        (2)、      date
        ansible test01 -m command -a 'date'       
        ansible test02 -m command -a 'date'       
    
        (3)、  hosts    date  
        ansible all -m command -a 'date'        
    
        (4)、    -m  ,     command  
        ansible all -a 'ls /'      

    2,cron 모듈
  • Ansible의 cron 모듈은 작업 계획을 정의하는 데 사용됩니다.그 중 두 가지 상태(state)가 있습니다.present는 추가를 표시하고, absent는 제거를 표시합니다.
  •     ansible-doc -s cron      #  cron    
    
        ansible test01 -m cron -a 'minute="*/1" job="/bin/echo heihei" name="test cron job"'       #      
    
        ansible test01 -a 'crontab -l'      #    
    
        ansible test01 -m cron -a 'name="test cron job" state=absent'    #      ,            ,name=None   

    3. 사용자 모듈
  • Ansible의 사용자 모듈은 새 사용자를 만들고 기존 사용자를 변경하고 삭제하는 데 사용됩니다.여기서name 옵션은 만든 사용자의 이름을 가리키는 데 사용됩니다.
  •     ansible test01 -m user -a 'name="test001"'   #    test001
    
        ansible test01 -m command -a 'tail /etc/passwd'     #       
    
        ansible test01 -m user -a 'name="test01" state=absent'    #    test001

    4. 그룹 모듈
  • Ansible의 group 모듈은 사용자 그룹을 관리하는 데 사용됩니다.
  •     nsible test01 -m group -a 'name=mysql gid=306 system=yes'   #  mysql 
    
        ansible test01 -a 'tail /etc/group'     #   
    
        ansible test01 -m user -a 'name=test001 uid=306 system=yes group=mysql'            #  test001     mysql  
    
        ansible test01 -a 'tail /etc/passwd'        #    
    
        ansible test01 -a 'id test001'              #       

    5. copy 모듈
  • Ansible의 copy 모듈은 파일 복사와 대량 발송을 실현하는 데 사용됩니다.그 중에서 src는 로컬 원본 파일 경로를 정의하고dest는 관리된 호스트 파일 경로를 정의하며,content는 같은 패거리가 지정한 정보 내용으로 목표 파일을 생성합니다.
  •     (1)、 :     /etc/fstab         /opt/fstab.back,       root,     640;
    
        ansible test001 -m copy -a 'src=/etc/fstab dest=/opt/fstab.back owner=root mode=640'
    
        ansible test001 -a 'ls -l /opt'     #      
    
        ansible test001 -a 'cat /opt/fstab.back'        #    
    
        (2)、 “hello heihei!”   /opt/fstab.back   ;
    
        ansible test001 -m copy -a 'content="hello heihei!"
        dest=/opt/fstab.back'  # hello heihei!  /opt/fstab.back
    
        ansible test001 -a 'cat /opt/fstab.back'    #    

    6, file 모듈
  • Ansible에서 file 모듈을 사용하여 파일 속성을 설정합니다.여기서 path를 사용하여 파일 경로를 지정하고 src를 사용하여 원본 파일 경로를 정의하며name이나dest를 사용하여 파일을 만드는 기호 링크를 대체합니다.
  •     ansible test01 -m file -a 'owner=mysql group=mysql mode=644 path=/opt/fstab.back'        #    /opt/fstab.back    mysql,   mysql,   644
    
        ansible test01 -m file -a 'path=/opt/fstab.link src=/opt/fstab.back state=link'      #  /opt/fstab.link /opt/fstab.back     
    
        ansible test01 -m file -a "path=/opt/fstab.back state=absent"         #  /opt/fstab.back  

    7. ping 모듈
  • Ansible에서 ping 모듈을 사용하여 호스트의 연결을 지정합니다.
  • ansible all -m ping

    8. 서비스 모듈
  • Ansible에서 서비스 모듈을 사용하여 관리 서비스의 운행 상태를 제어합니다.그 중에서enable를 사용하면 전원이 자동으로 시작되었는지 여부를 표시하고true 또는false로 값을 받습니다.name으로 서비스 이름 정의하기;state를 사용하여 서비스 상태를 지정합니다. 값은 각각 started,stopped,restarted입니다.
  •     ansible test02 -a 'systemctl status httpd'        
        #  test02   httpd    
        ansible test02 -m service -a 'enabled=true name=httpd state=started'        #  httpd  ,          

    9.셸 모듈
  • Ansible의 셸 모듈은 관리된 호스트에서 명령을 실행할 수 있고 파이프 문자와 같은 기능의 복잡한 명령을 지원한다.
  •     ansible mysql -m shell -a 'echo abc123|passwd --stdin mysql'       #                  

    10.script모듈
  • Ansible의script 모듈은 로컬 스크립트를 관리되는 호스트에 복사하여 실행할 수 있습니다.주의해야 할 것은 상대 경로를 사용하여 스크립트를 지정하는 것이다.
  •      :        test.sh,           
    
        vim test.sh         #    
        #!/bin/bash
        echo "hello ansible from script"> /opt/script.txt
    
        chmod +x test.sh    #      
    
        ansible test01 -m script -a 'test.sh'   #      test01 
    
        cat /opt/script.txt         # test01   

    11.yum모듈
  • Ansible의yum모듈은 관리된 호스트에 패키지를 설치하거나 마운트 해제하는 것을 책임지지만 각 노드에 자신의yum창고를 미리 설정해야 한다.그 중에서name을 사용하여 설치할 패키지를 지정하고 패키지의 버전 번호를 가져가야 한다. 그렇지 않으면 최신 패키지를 설치한다.state를 사용하여 설치 패키지의 상태를 지정합니다.present,latest는 설치를 표시하고,absent는 마운트 해제를 표시합니다.
  •     ansible test01 -m yum -a 'name=zsh'                  #  zsh   
    
        ansible test01 -m yum -a 'name=zsh state=absent'     #  zsh   

    12. setup 모듈
  • Ansible에서 setup 모듈을 사용하여 관리된 호스트의facts를 수집하고 보기(facts는Ansible가 관리된 호스트 장치 정보를 수집하는 기능이다).각 관리 호스트는 관리 명령을 수신하고 실행하기 전에 자신의 관련 정보(운영 체제 버전, IP 주소 등)를 제어 호스트에 보냅니다.
  • ansible tets01 -m setup           //  test01    facts  

    좋은 웹페이지 즐겨찾기