가능한 변수와 사실로 작업하는 방법-제 8 부

우리는이 가능한 시리즈의 변수를 언급하고 당신의 마음을 조금 조깅했습니다. 많은 프로그래밍 언어와 마찬가지로 변수는 본질적으로 값을 나타내는 키입니다.

유효한 변수 이름은 무엇입니까?

변수 이름에는 문자,숫자,밑줄 또는 2 개 또는 모두의 혼합이 포함됩니다. 그러나 변수 이름은 항상 문자로 시작해야 하며 공백을 포함해서는 안 됩니다.

유효하고 허용되지 않는 변수 이름의 몇 가지 예를 살펴 보겠습니다.

유효한 변수 이름 예제:

football foot_ballfootball20 foot_ball20

유효하지 않은 변수 이름 예제:

foot ball20 foot-ball

각본 변수

각본 변수는 매우 쉽고 간단합니다. 각본에서 변수를 정의하려면,단순히 들여 쓰기와 변수를 쓰기 전에 키워드 변수를 사용합니다.

변수 값에 액세스하려면 따옴표로 묶인 이중 중괄호 사이에 변수를 배치합니다.

간단한 플레이 북 예제는 다음과 같습니다.:

- hosts: all vars: greeting: Hello world! tasks: - name: Ansible Basic Variable Example debug: msg: "{{ greeting }}"

위의 각본에서 인사말 변수는 값 안녕하세요 세계로 대체됩니다! 플레이북이 실행될 때 플레이 북은 단순히 메시지 안녕하세요 세계를 인쇄! 실행될 때.

가능한 각본 변수

또한 다음과 같이 변수 목록 또는 배열을 가질 수 있습니다.

아래의 각본에는 대륙이라는 변수가 표시됩니다. 변수는 5 개의 다른 값–대륙 이름을 보유합니다. 이러한 각 값은 인덱스 0 을 첫 번째 변수로 사용하여 쉽게 액세스 할 수 있습니다.

아래 플레이북의 예는 아시아를 검색하여 표시합니다(색인 1).

가능한 변수 배열

변수 목록은 다음과 같이 유사하게 구성 될 수 있습니다:

vars: Continents: 

목록에 있는 모든 항목을 나열하려면 항목 모듈을 사용합니다. 이 배열의 모든 값을 통해 루프 것입니다.

가능한 배열 변수 목록

가능한 변수의 또 다른 유형은 사전 변수입니다.

사전 변수는 플레이북에서 추가로 지원됩니다. 사전 변수를 정의하려면 사전 변수 이름 바로 아래에 키-값 쌍을 연결하면 됩니다.

hosts: switch_f01vars: http_port: 8080 default_gateway: 10.200.50.1 vlans: id: 10 port: 2

위의 예에서 블란스는 사전 변수이고 아이디 및 포트는 키-값 쌍입니다.

포트의 경우 변수가 아닌 텍스트로 값을 시작하므로 중괄호를 둘러싸는 데 따옴표가 필요하지 않습니다.

특수 변수

사용자가 변경하거나 정의할 수 없는 미리 정의된 변수 목록을 제공합니다.

총체적으로,미리 정의 된 가능한 변수의 목록을 가능한 사실이라고 부르며,이는 플레이 북이 실행될 때 수집됩니다.

모든 가능한 변수의 목록을 얻으려면 아래와 같이 가능한 임시 명령의 설치 모듈을 사용하십시오:

# ansible -m setup hostname

다음과 같이 출력이 표시됩니다:

# ansible -m setup localhost
목록 가능한 변수

출력에서,우리는 가능한 특수 변수의 예 중 일부는 다음과 같은 것을 볼 수 있습니다:

다른 많은 가능한 특수 변수가 있습니다 이들은 단지 몇 가지 예입니다.

재고 변수

마지막으로 목록에 가능한 재고 변수가 있습니다. 인벤토리는 관리 가능한 모든 호스트를 포함하는 초기화 형식의 파일입니다.

인벤토리에서 호스트 시스템에 변수를 할당하고 나중에 각본에서 사용할 수 있습니다.

web_server_1 ansible_user=centos http_port=80web_server_2 ansible_user=ubuntu http_port=8080

위의 내용은 다음과 같이 각본 파일로 나타낼 수 있습니다:

--- web_servers: web_server_1: ansible_user=centos http_port=80web_server_2: ansible_user=ubuntu http_port=8080

호스트 시스템이 동일한 변수를 공유하는 경우 인벤토리 파일에 다른 그룹을 정의하여 덜 번거롭고 불필요한 반복을 피할 수 있습니다.

예:

web_server_1 ansible_user=centos http_port=80web_server_2 ansible_user=centos http_port=80

위의 내용은 다음과 같이 구성 될 수 있습니다:

web_server_1web_server_2ansible_user=centoshttp_port=80

그리고 각본에서 얌 파일,이것은 다음과 같이 정의 될 것입니다:

--- web_servers: hosts: web_server_1: web_server_2: vars: ansible_user=centos http_port=80

실행 가능한 사실

플레이북을 실행할 때 실행 가능한 첫 번째 작업은 설치 작업의 실행입니다. 난 당신이 출력을 건너해야한다는 확신:

TASK: *********

가능한 사실은 시스템 속성 또는 연결 한 원격 노드에 대한 정보 조각 일뿐입니다. 이 정보에는 시스템 아키텍처,운영 체제 버전,바이오스 정보,시스템 시간 및 날짜,시스템 가동 시간,아이피 주소 및 하드웨어 정보가 포함됩니다.

모든 시스템에 대한 사실을 얻으려면 아래 명령과 같이 설정 모듈을 사용하십시오:

# ansible -m setup hostname

예를 들어:

# ansible -m setup database_server

다음과 같이 큰 데이터 집합을 출력합니다:

예를 들어 운영 체제에 따라 어떤 소프트웨어 패키지를 설치해야 하는지,어떻게 구성해야 하는지 등을 알 수 있습니다.

사용자 정의 사실

당신은 또한 당신이 책임에 의해 수집 할 수있는 사용자 정의 사실을 만들 수 있다는 사실을 알고 계십니까? 예,할 수 있습니다. 이렇게 대략 그것 가는가 너는 라고? 의 기어를 이동하고 방법을 보자.

첫 번째 단계는/등/가능한/사실을 만드는 것입니다.디 관리 또는 원격 노드의 디렉토리.

이 디렉토리 안에.fact확장자를 가진 파일을 만듭니다. 이 노드는 플레이북이 실행된 후 검색되는 다른 사실을 포함합니다.

다음은 날짜_시간이라는 사용자 지정 팩트 파일의 예입니다.날짜 및 시간을 검색하는 팩트입니다.

# mkdir -p /etc/ansible/facts.d# vim /etc/ansible/facts.d/date_time.fact

다음 줄을 추가합니다.

#!/bin/bashDATE=`date`echo "{\"date\" : \"${DATE}\"}"

파일을 저장하고 종료합니다.

이제 실행 권한 할당:

# chmod +x /etc/ansible/facts.d/date_time.fact

이제 체크 _데이트라는 제어 노드에 플레이북을 만들었습니다.아..

---- hosts: webservers tasks: - name: Get custom facts debug: msg: The custom fact is {{ansible_local.date_time}}

팩트 파일을 로컬 변수에 추가합니다. 모든 사용자 지정 사실을 저장합니다.

이제 각본을 실행하고 팩트 파일에 저장된 정보를 검색 할 수 있는지 관찰하십시오.:

# ansible_playbook check_date.yml
가능한 사용자 정의 사실 만들기
결론

이것은 가능한 변수와 사실 작업에 대한이 튜토리얼의 끝으로 우리를 제공합니다.

답글 남기기

이메일 주소는 공개되지 않습니다.

Previous post 스티븐 슈워츠-사악한 좋은 작곡가
Next post 자녀가 자녀 보호 소프트웨어를 우회 할 수있는 7 가지 방법