ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Ansible] 인프라 구성 관리/변경 작업 자동화를 위한 오픈소스
    오픈소스 2020. 9. 21. 15:31

     

     개요

     아직 개발 중인 리눅스 설치 자동화와 앞서 기재했던 WINDOW 설치 자동화까지 모두 OS 초기 구성과 관련이 있다. 구성 이후 기준이 변경되거나 변경이 필요할 경우에는 사용할 수 없다는 애기이다. 물론, 작업 내용이 간단하거나 대상이 소규모라면 얼마든지 그렇게 해도 되겠지만 인공지능과 자동화라는 주제로 계속해서 빠르게 변화되는 요즘에 언제까지나 노가다로 할 수는 없지 않겠는가.. 이를 해결하기 위하여 필자는 Ansible 이라는 오픈소스를 채택하였으며 스크립트 기반의 동작을 통하여 대수와 무관하게 동일하게 적용할 수 있다는 점이 가장 큰 장점으로 다가왔다.

     

     


     

     

     Ansible에 대하여

     먼저 Ansible에 대하여 간단하게 살펴보도록 하자. ko.wikipedia.org/wiki/Ansible에 기재된 내용을 보면 아래와 같다.

    "Ansible은 오픈 소스 소프트웨어 프로비저닝, 구성 관리, 애플리케이션 전개 도구이다. 수많은 유닉스 계열 시스템에서 실행되며 유닉스 계열 운영 체제 및 마이크로소프트 윈도우의 구성이 가능하다. 시스템 구성을 기술하기 위해 자체 선언형 언어를 포함하고 있다. Ansible은 2015년에 레드햇에 인수되었다."

    그 외에 Ansible은 CLI기반의 환경만을 제공하지만, Redhat에 인수된 이후로 2가지 버전의 GUI 제품이 추가되었다. 무료 버전의 Ansible AWX와 유료 버전의 Ansible Tower가 있으며, 필자는 초기에 Ansible AWX로 구성하려고 했었으나 예시도 어렵고 별도 외부 지원이 없는 환경에서 구성하기엔 어려움이 있다고 판단하여 현재는 Ansible 2.9.7 버전을 사용하고 있다.

     

     활용 방안

     Ansible은 많은 모듈과 명령어를 기반으로 사용자의 능력에 따라 셀 수 없이 많은 기능들을 구현할 수 있다. 같은 패치 작업을 진행하더라도 편의성을 중요시하여 모든 것을 자동으로 진행하는 사람도 있을 것이고, 안전성을 중요시하여 순차적으로 확인하면서 작업을 진행하는 사람도 있을 것이다. 필자는 현재 정기점검 작업 자동화를 위하여 도입하고 있으며 간략한 예시로 "패치 파일 배포/구성 정보 백업/서비스 비활성화" 등에서 사용하고 있다. 이를 구현하기 위한 Ansible Script는 아래와 같다.

    파일 복사 - name: Copy PatchFile to Client
      win_copy: 
            src: /etc/ansible/AnsiblePM/
            dest: C:\AnsiblePM
    구성 정보 백업 - name: Server Config Backup
      win_shell: |
            cmd /C "ipconfig /all > C:\AnsiblePM\ipconfig.txt"
            cmd /C "netstat -an > C:\AnsiblePM\netstat.txt"
    서비스 비활성화 - name: Disable Windows Update
      win_shell: |
            cmd /C "net stop wuauserv"
            cmd /C "sc config wuauserv start= disabled"

    위와 같이 간단한 스크립트만으로도 충분히 기능은 구현할 수 있으며, 필자는 이를 바탕으로 WINDOW Update를 자동화해주는 스크립트를 작성하였는데 후에 관련 내용은 따로 포스팅 하도록 하겠다.

     

     


     

     

     마무리

     최근 인공지능이 하나의 큰 트렌드로 자리잡음에 따라, IT에서 업무 자동화 부분도 빼놓을 수 없는 부분 중에 하나입니다. 시스템은 점차 늘어가는데 1인이 관리할 수 있는 대상은 한정되어 있기 때문에 오픈소스 도입과 그를 활용한 관리 자동화는 불가피한 선택임과 동시에 하나의 경쟁력이 될 수 있을 것입니다. 설치 관련해서는 Docker/AWS 등, 많은 경우의 수가 있기에 별도로 기술하지는 않을 예정이며 그 외 문의사항은 댓글 달아주시면 확인하여 답변 드리겠습니다.

     

    긴 글 읽어주셔서 감사합니다.

     

     

    댓글

Designed by Tistory.