Ansible 역할-플레이 북을 풀 수있는 궁극의 방법



이 Ansible 역할 블로그에서는 MEAN 스택 설정 시연을 통해 복잡한 플레이 북을 읽고 재사용 할 수 있도록 역할을 사용하는 방법에 대해 설명합니다.

Ansible을 사용하면 시스템 구성 관리를 자동화하고 원하는만큼 클라이언트를 추가 할 수 있습니다. 이것이 얼마나 복잡해질 수 있는지 궁금한 적이 있습니까? 플레이 북이 얼마나 오래 걸리고 혼란 스러울 수 있는지 궁금한 적이 있습니까? Ansible은 어떻게 여전히 바람처럼 보이게합니까? Ansible 역할의 개념을 사용하며 이것이이 블로그에서 설명 할 내용입니다.

항목은 다룹니다:





DevOps를 마스터하려면 ' 코스는 당신의 선택이 될 것입니다.

Ansible 역할 소개

Ansible Role은 이벤트가 아닌 아이디어를 다루는 개념입니다. 기본적으로 플레이 북을 구성하는 데 사용되는 또 다른 추상화 수준입니다. 플레이 북에 자동으로로드 할 수있는 변수, 작업, 템플릿, 파일 및 모듈의 독립적이고 재사용 가능한 컬렉션에 대한 골격을 제공합니다. 플레이 북은 역할 모음입니다. 모든 역할에는 특정 기능이 있습니다.



예를 들어 설명하겠습니다. 플레이 북이 5 개의 다른 시스템에서 10 개의 다른 작업을 수행하기를 원한다고 가정 해 보겠습니다. 단일 플레이 북을 사용 하시겠습니까? 아니요, 하나의 플레이 북을 사용하면 혼란스럽고 실수하기 쉽습니다. 대신 각 역할이 하나의 작업을 수행하는 10 개의 다른 역할을 만들 수 있습니다. 그런 다음 플레이 북에있는 역할의 이름을 언급하기 만하면됩니다. 이 블로그에서 역할을 사용하는 방법에 대해 자세히 알아 봅니다.

Ansible 역할의 재사용 성

Ansible 역할은 서로 독립적입니다. 한 역할의 실행은 다른 역할에 의존하지 않으므로 재사용 할 수 있습니다. 요구 사항에 따라 이러한 역할을 수정하고 개인화 할 수도 있습니다. 이렇게하면 필요할 때마다 전체 코드 섹션을 다시 작성해야하는 작업이 줄어들어 작업이 단순화됩니다.

이전 예로 돌아가 보겠습니다. 10 개의 역할을 작성했으며 이제 다른 프로비저닝 세트에 5 개를 사용해야합니다. 전체 플레이 북을 다시 작성합니까? 아니요,이 새 플레이 북에서이 5 가지 역할을 호출하여 재사용하면됩니다. 필요한 경우 수정할 수도 있지만 여전히 많은 시간을 절약 할 수 있습니다.



LAMP 스택을 설정하기 위해 플레이 북을 작성해야한다고 가정 해 보겠습니다. Linux, Apache, MongoDB 및 PHP를 만들기 위해 각각 4 개의 역할을 만들어야합니다. 앞으로 WordPress뿐만 아니라 LAMP 스택을 설정하기위한 다른 플레이 북이 필요한 경우 LAMP 스택 및 WordPress에 대한 새 역할을 다시 생성 하시겠습니까? 아니! 이전 역할 (LAMP 스택에 사용됨)을 재사용하고 WordPress에 대한 새 역할을 추가로 생성 할 수 있습니다.

역할 디렉토리 구조

Ansible 역할을 사용하여 파일이 특정 파일 구조에 있어야합니다. 역할 사용에서 가장 혼란스러운 부분은 파일 계층 구조를 이해하는 것입니다. Ansible은 역할을 수행하는 데 도움이되는 Ansible Galaxy라는 기능을 제공합니다. 우리는 이미 우리의 Ansible이 Ubuntu (/ etc / ansible)에서 어디에 있는지 알고 있습니다. / etc / ansible 아래에 roles이라는 디렉토리를 본 적이 있습니까? 이 디렉토리는 바로 이러한 이유로 존재합니다. 이 디렉터리 내에 다른 역할을 만듭니다.

디렉토리는 다음과 같습니다.

트리-Ansible 역할-Edureka

다음을 사용하여 역할을 만들 수 있습니다. ansible-galaxy / etc / ansible / roles 내부의 init 명령.

$sudoansible-galaxy 초기화

다른 역할 디렉토리도 생성 된 것을 볼 수 있습니다.

이러한 디렉터리는 작업, 처리기, 기본값, vars, 파일, 템플릿, 메타 및 README입니다.md파일.

과제 – 역할에 의해 실행될 기본 작업 목록이 포함됩니다. 그것포함특정 역할에 대한 main.yml 파일.

핸들러 –이 역할 또는이 역할 외부에서 사용할 수있는 핸들러를 포함합니다.

기본값 –이 역할에서 사용할 기본 변수를 포함합니다.

누구 –이 디렉토리는 역할에서 사용할 다른 변수로 구성됩니다. 이러한 변수는 플레이 북에서 정의 할 수 있지만이 섹션에서 정의하는 것이 좋습니다.

파일 –이 역할로 배포 할 수있는 파일이 포함되어 있습니다. 역할을 구성하는 동안 호스트로 보내야하는 파일이 포함되어 있습니다.

메타 –이 역할에 대한 메타 데이터를 정의합니다. 기본적으로 역할 종속성을 설정하는 파일이 포함되어 있습니다.

마다 직무 디렉토리는 main.yml 특정 역할에 대한 실제 코드가 작성된 파일.

이제 MEAN Stack 설치 데모를 통해 작업 또는 역할을 이해하겠습니다.

데모 : Ansible 역할을 사용하여 MEAN 스택 설치

하나의 플레이 북을 실행하여 Ansible 역할을 사용하여 MEAN Stack을 설치하는 방법을 보여 드리겠습니다. 1) 필수 구성 요소 설치, 2) MongoDB 설치 및 3) NodeJS 설치의 세 가지 역할이 있습니다. 나는 당신이 이미 Ansible을 설치하고 Ubuntu에 서버-클라이언트 연결을 설정했습니다. . Ansible 역할을 시작하겠습니다.

1 단계 – / etc / ansible / roles 디렉토리로 이동하여 전제 조건, MongoDB 및 NodeJS에 대한 역할을 작성하십시오.

반복자 자바 사용 방법
$ cd / etc / ansible / roles $ sudo ansible-galaxy init 전제 조건 $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

이제 'roles'디렉토리에 세 가지 역할이 표시됩니다.

2 단계 – Git을 설치하는 전제 조건에 대해 main.yml을 작성하십시오.

$ cd prerequisites / tasks / main.yml ----name : Install git apt : name : git state : present update_cache : yes

3 단계 – MongoDB 역할에 대한 main.yml 작성

$ cd /mongodb/tasks/main.yml ----이름 : MongoDB-공개 키 가져 오기 apt_key : keyserver : hkp : //keyserver.ubuntu.com : 80 id : EA312927-이름 : MongoDB-저장소 추가 apt_repository : 파일 이름 : '/etc/apt/sources.list.d/mongodb-org-3.2.list'repo : 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse'state : present update_cache : yes-이름 : MongoDB-MongoDB 설치 apt : 이름 : mongodb-org 상태 : 현재 update_cache : yes-이름 : mongod 쉘 ​​시작 : 'mongod &'

4 단계 – 다음에 대한 main.yml 작성nodejs역할

$ cd nodejs / tasks / main.yml ----name : Node.js-Get script get_url : url : 'http://deb.nodesource.com/setup_6.x'dest : '{{var_node}} / nodejs .sh '-이름 : Node.js-스크립트 파일에 대한 실행 권한 설정 : 경로 :'{{var_node}} / nodejs.sh '모드 :'u + x '-이름 : Node.js-설치 스크립트 셸 실행 :' {{var_node}} / nodejs.sh '-이름 : Node.js-설치 스크립트 파일 제거 : 경로 :'{{var_node}} / nodejs.sh '상태 : 없음-이름 : Node.js-Node.js apt 설치 : name = {{item}} state = present update_cache = yes with_items :-build-essential-nodejs-이름 : Node.js-전역 적으로 bower 및 gulp 설치 npm : name = {{item}} state = present global = yes with_items :-정자-꿀꺽 꿀꺽

5 단계 – 메인 플레이 북 작성

$ cd /etc/ansible/mean.yml ----hosts : nodes remote_user : ansible become : yes become_method : sudo vars : #variable needed during node installation var_node : / tmp roles :-prerequisites-mongodb-nodejs

이제 필수 구성 요소를 설치하기위한 역할을 정의 했으므로 MongoDB 및 NodeJ, 배포하겠습니다. 다음 명령을 사용하여 플레이 북을 실행합니다.

$sudoansible 플레이 북 /etc/ansible/mean.yml -K

보시다시피 모든 작업이 실행되었으며 상태가 변경되었습니다. 이는 플레이 북 변경 사항이 호스트뿐만 아니라 서버에도 적용되었음을 의미합니다. MEAN Stack 설정은 한 가지 예일뿐입니다. Ansible 역할을 사용하여 말 그대로 모든 것을 설정할 수 있습니다.

Ansible Roles 블로그의 끝으로 이동합니다. 이 기사가 유용하다고 생각되면 ' Edureka 제공. IT 산업을 개선 한 모든 도구를 다룹니다.

질문이 있으십니까? 그것을 게시하십시오 그리고 우리는 당신에게 돌아갈 것입니다.