
work PC 홈디렉터리아래 2day 디렉터리 생성 후 진행
2day 디렉터리 아래, inventory생성, ansible.cfg 생성
serverc.test.com 에다 패키지 설치 ( dnf )
httpd / php / php-mysqlnd / mariadb-server / vsftpd
httpd, mariadb,vsftpd 데몬(systemctl)을 시작.(상시 허용)
방화벽에는 http프로토콜 추가
index.php 파일을 생성하고 serverc에 업로드

*yaml 파일명은 자유. pkg 라는 이름을 만들고 그 아래 설치하려는 목록을 나열해주면됨.
*yaml 파일명은 자유.
- dnf를 통해 여러개 패키지를 한번에 설치
*serverc 에 접속 하지 않고도 설치 확인
- 패키지 설치 된 것을 확인


-#vi test.php

- apm 설치하는 것을 vi로 간략하게 적는 방법, 시스템 동작 후 영구 동작
- 방화벽 허용과 web page 연동
- 홈페이지 내용 입력(php)
- web site를 코드로 체크하는 방법(uri)
- 2.yaml 플레이북 가상 실행
- 2.yaml 플레이북 실행

2day 디렉토리에 createuser.yaml 파일 생성 해서 user.yaml 파일을 동작 시켜 보기
#vi createuser.yaml

*centos 사용자 생성된것 확인 servera, serverb, serverc, serverd 모두
[root@work 2day]# ansible serverb.test.com -m shell -a 'tail /etc/passwd'
- vars폴더 아래 user.yaml파일 만들어서 vi로 열기
- 사용자 정보 입력
- 사용자 생성 파일을 vi로 생성한다.
- 사용자 생성 파일의 내용을 입력한다.(all: 전부, wheel: 비어놓는다는 뜻)
- 플레이북 가상 실행
- 플레이북 실행
- 명령어를 입력하여 사용자가 생성되었는지 확인(tail)
- -a 옵션: 명령어 입력

- old_facts를 서버 A에 적용 시키기
- new-facts.yaml 파일 열기
- vi로 서버 A에 ansible_facts 실행을 작성
- 플레이 북으로 new_facts.yaml 파일을 서버 A에 실행
*유저 정보 입력해서 사용자 생성

cat new_facts.yaml -> 확인
- user.yaml 파일 작성, 사용자 정보 입력
- user.yaml 파일 작성, 더 자세한 정보 입력
- user.yaml 파일 작성, old 파일과 new 파일 매칭
- new_facts.yaml 실행 후에
- 적용 되었는지 확인해보지만 안되었다(버젼 이슈)
- lunch.yaml을 vi로 작성
- 기호에 따라서 실행했을 때 메세지가 어떻게 표현되는지 확인
- 줄 바꿈 표시가 바뀐다()
- showtest.yaml 파일을 열기
- showtest.yaml 파일 작성 위에서와 마찬가지로 기호 (>, |, 아무것도 없이)에 따라서 결과값 확인
- 가상 실행 결과 >(꺽새)는 줄 바꿈 표시가 \ 로 표시되고
- |(파이프)는 \n 표시되며
- 아무 것도 없는 것은 표시가 없이 줄을 바꿔준다.
*변수 - 그룹변수, 호스트 변수, 플레이 변수, 추가변수
*3day 디렉토리 생성 과 함께 inventory , ansible.cfg 파일을 복사 해서 넣기
- 3day 폴더 생성 후 inventory 파일에 진입
- 사용자 생성 그룹을 등록(vars: 변수, user: 사용자)
*그룹 변수
inventory 파일 맨 아래 추가
[webndb:children]
web
db
[all:vars]
user=ansible
#vi create-user.yaml

*실행 후 확인 해 보면 모든 서버에 ansible 사용자 생성
- create-user.yaml 파일 생성
- vi로 모든 서버에게 사용자를 만드는 내용 입력(그룹 변수)
- 플레이 북 실행 완료
- 서버 A 접속 해서 사용자 생성된 것 확인
*인벤토리를 수정해서 호스트변수 실행
*호스트 변수 실습

*실행 후 db 그룹에 등록된 serverc 에 ansible01 사용자 생성 확인(ls /home)
*인벤토리에서 web 서버에 등록된 두대 중 한대만 변수 지정 후 실행 하고 생성 확인 ( ansible01 )
- inventory에서 db 그룹 내용 수정, 사용자 등록
- create-user.yaml을 복사해서 create-user01.yaml파일 생성
- db 그룹의 사용자만 생성하는 내용 입력(호스트 변수)
- 서버 C 에서만 사용자가 생성된 것 확인
- create-user.yaml 복사해서 create-user02.yaml 파일 생성
- 사용자 ansible02를 생성하는 내용 입력
- 플레이북 가상 실행
- 실행 완료
- 사용자 생성 확인
![]()
*플레이 변수 실습 ⇒ 야물파일에 변수를 지정해서 실행 시키면 inventor 보다 우선순위를 가짐

*실행 후 서버에서 사용자 ansible2 생성 확인
*파일을 외부에 두고 실행 .
[root@work 3day]# cp create-user02.yaml create-user03.yaml 복사 후 수정

*저장 / 실행 하고 / ansible3 사용자 생성 확인
- vars 폴더 생성
- vars 폴더 아래 ansible03 사용자를 생성하는 내용 입력
- create-user03.yaml 파일 생성
- 사용자 만드는 파일의 경로 지정(플레이 변수 설정)
- 실행 완료
- 서버 C에 접속해서 확인
*추가 변수 실습 == 파일을 수정하지 않고 명령어를 통해서 파일의 내용을 지정 해주는 법
*실행 / 사용자 생성 확인
- -e 옵션: 편집하는 것
- ansible을 통해 create-user03.yaml으로 사용자 ansible04 복사(추가 변수)
- 서버 B에 접속해서 확인
*작업변수 실습 = 플레이북 실행 결과를 저장 .
[root@work 3day]# cp create-user01.yaml create-user04.yaml
맨 아래 쪽에 내용 입력

*저장 / 실행 하는 데 그냥실행하면 사용자 중복되어 추가 변수와 함께 실행 해보기 사용자를 ansible5로 생성
- [root@work 3day]# vi create-user04.yaml 파일 열기
- 결과를 저장하는 내용 입력(작업 변수)
- 실행 결과, 결과가 저장 된다.
- 서버 A에 접속해서 확인했으며 사용자 생성 완료
-호스트 이름, 커널, OS, 메모리, CPU, 디스크 용량 등………………………
#vi facts.yaml 열기

- [root@work 3day]# vi facts.yaml파일 열기
- db 그룹에 ansible_facts를 실행하는 내용 입력
- 가상 실행 완료(
*ip 관련 메세지 출력

- facts.yaml 파일을 facts01.yaml 파일에 복사해서 열기
- db 그룹에게 IP를 프린트하는 내용을 입력
- 실행 결과 메세지로 아이피 출력
#vi disk.yaml ⇒ 디스크 사용량만 확인 해보기

- [root@work 3day]# vi disk.yaml 파일 열기
- 디스크 용량 확인하는 내용 입력(aaa는 의미 없음)
- 실행 결과 디스크 용량 확인
*호스트에 대해서 조건이 맞으면 메시지 출력

- [root@work 3day]# vi test1.yaml 파일 열기
- 조건문: 조건이 맞을 때 메세지 출력 i386일 땐 조건이 안맞아서 아래 메세지 출력
- 실행 결과 아래 메시지 출력 완료
- x86_64일 땐 조건이 맞아서 위의 메세지 출력
- 실행 결과 위 메시지 출력 완료
문제 :
serverd.test.com 시스템이 사용가능한 메모리가 300M 이상이 되었을때
#vi test2.yaml

- [root@work 3day]# vi test2.yaml 파일 열기
- 조건문이며 사용 가능한 메모리가 300M 이상이 될 때 메세지 출력
- 조건이 맞아서 메세지 This system is Memory has big을 출력한다.