ansible 템 플 릿, 조건 테스트, 순환 문 사용
2 템 플 릿
모듈 과 템 플 릿 의 차이 점, template 모듈 은 템 플 릿 파일 의 변 수 를 실제 값 으로 다시 생 성 한 후 파일 을 원 격 호스트 에 복사 합 니 다.
모듈: template
템 플 릿 기반 (접미사. j2 로 끝 나 는 파일) 방식 으로 원 격 호스트 에 파일 을 복사 하고 ansible 에서 수집 한 내장 변 수 를 호출 합 니 다. 변수의 끼 워 넣 기 코드 표 지 는 쌍 괄호 입 니 다.
*src=
*dest=
owner=
group=
mode=
템 플 릿: templates
텍스트 파일, 스 크 립 트 포함 (템 플 릿 프로 그래 밍 언어 Jinja 2 로 작성)
:
: ;
: , ;
:[item1, item2, ...]
:(item1, item2, ...)
:{key1:value1, key2:value2, ...}
:true/false
:
+, -, *, /, //, %, **
:
==, !=, >, >=,
예 1:
redis 소프트웨어 를 설치 하고 redis 설정 파일 을 템 플 릿 으로 설정 합 니 다.
설정 템 플 릿 파일 을 수정 하여. j2 로 끝 냅 니 다.
vim/root/redis.conf.j2
maxmemory {{ ansible_memtotal_mb/2 }}mb
template 는 명령 행 에서 실행 할 수 없습니다. 명령 에서 - m 지정 모듈 을 template 로 실행 할 수 없습니다. 스 크 립 트 에 정의 하고 playbook 으로 스 크 립 트 를 실행 해 야 합 니 다.
vim/root/ansible/installvar.yml
실행 스 크 립 트 는 다음 과 같 습 니 다.
ansible-playbook installvar.yml
웹 rvs 그룹의 호스트 가 redis 를 설치 한 후 파일 설정 을 설정 한 maxmemory 는 ansible 입 니 다.memtotal_mb/2 의 값
예 2:
nginx 를 설치 하고 nginx 설정 파일 을 템 플 릿 vim/root/ansible/intnginx. yml 로 설정 합 니 다.
템 플 릿 프로필: nginx. conf. j2workerprocesses {{ ansible_processor_vcpus }};server_name {{ ansible_fqdn }};
3 조건 부 테스트
통 제 된 호스트 시스템 이 다 르 면 실행 되 는 문구 가 다 를 수 있 으 므 로 조건 부 판정 이 필요 합 니 다.
when 구문: task 에서 사용 하 는 jinja 2 의 문법 형식
예:
centos 6 와 centos 7 에 nginx 를 설치 하여 호스트 시스템 버 전 을 판단 하고 서로 다른 설정 vim intnginx. yml 을 실현 합 니 다.
실행
ansible-playbook instnginx.yml
예:
호스트 의 ip 에 따라 서로 다른 파일 을 해당 하 는 호스트 vim cpfile. yml 로 복사 합 니 다.
집행 하 다.
1
ansible-playbook cpfile.yml
4 순환
반복 해서 수행 해 야 할 임무;
1. 교체 항목 에 대한 참조, 고정 변 수 는 "item"입 니 다.
2 task with_items ;
목록 방법:
문자열
사전: 요 소 는 사전 일 수 있 습 니 다. 여러 파일 을 복사 할 때 copy 모듈 을 직접 사용 할 수 있 습 니 다.
예:
서비스 패 키 지 를 교체 하 는 방법 으로 설치 하고 사용 자 를 만 듭 니 다.
vim iteration.yml
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu 22.04에서 SSH를 통해 호스트에 연결하지 못했습니다.방금 Ubuntu 22.04로 업그레이드했는데 호스트에 ssh를 시도하거나 실행할 때 또는 ansible 프로비저너를 실행할 때 이미지를 빌드할 때 갑자기 오류가 발생하는 경우 이 기능이 유용할 것입니다. 너. 제 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.