10. 웹 컨텐츠 디렉토리 만들기
문제 및 답
문제 10)
/home/matthew/ansible/webcontent.yml이라는 스크립트를 만듭니다.
yml은 다음과 같습니다.
- 플레이 북은 dev 호스트 그룹의 관리 노드에서 실행됩니다.
- 다음 요구 사항에 따라 /webdev 디렉터리를 만듭니다.
- Webdev 그룹 구성원
- 권한 :
owner = read + write + excute,
group = read + write + excute,
other = read + excute
= 특별 권한 : 그룹 ID 설정
심볼릭 링크 /var/www/html/webdev를 /webdev로 생성하세요.
/webdev/index.html 파일을 생성하고, 해당 파일 내용은 "Development"라는 단일 텍스트 라인이어야 합니다.
dev 호스트 그룹의 호스트에서 이 디렉토리를 브라우징하면(http://node1.domain1.example.com/webdev/),
"Development"가 출력되어야 합니다.
답 10)
# vi /home/matthew/ansible/webcontent.yml
- name: create web
hosts: dev
tasks:
- name: create group
group:
name: webdev
state: present
- name: create /webdev
file:
path: /webdev
mode: '2775'
state: directory
group: webdev
setype: httpd_sys_content_t
- name: creat link
file:
src: /webdev
dest: /var/www/html/webdev
state: link
- name: copy using content
copy:
content: "Development\n"
dest: /webdev/index.html
setype: httpd_sys_content_t
ansible-playbook webcontent.yml
# curl http://node1/webdev/index.html
풀이과정
1. node1) http 설치 및 설정 - 실제 시험에서는 자동으로 설정되어 있음
sudo dnf install httpd -y
sudo systemctl enable --now httpd
2. playbook 생성 : 위에 답과 동일하게 생성 및 실행
3. node1에서 결과 확인
- /webdev 권한 확인 : webdev 그룹, 2755 권한 확인
- 심볼릭 링크 확인
- http 접속 - http://퍼블릭 ip/webdev/index.html
- Development 단일 텍스트인지 확인
11. 하드웨어 보고서 생성
문제 및 답
문제 11)
/home/matthew/ansible/hwreport.yml 이름의 playbook을 생성하여
다음 정보가 있는 모든 관리 노드에 /root/hwreport.txt 출력 파일을 생성하십시오.
-Inventory host name
-Total memory in MB
-BIOS version
-Size of disk device vda
-Size of disk device vdb
-Each line of the output file contains a single key = value pair.
이 Playbook은 다음을 수행해야합니다.
-http://rhgls.domain1.example.com/materials/hwreport.empty 파일을 다운로드하고 /root/hwreport.txt로 저장합니다.
-/root/hwreport.txt를 올바른 값으로 수정합니다.
-하드웨어 항목이 존재하지 않으면 연관된 값은 NONE으로 설정해야합니다.
답 11)
# vi /home/matthew/ansible/hwreport.yml
- name: Create HW Report
hosts: all
tasks:
- name: get_url file
get_url:
url: http://master-yum/hwreport.empty
dest: /root/hwreport.txt
mode: '0755'
- name: change the data1
lineinfile:
path: /root/hwreport.txt
line: "inventory_name = {{ ansible_hostname | default('NONE') }}"
regexp: "^inventory_name"
- name: change the data2
lineinfile:
path: /root/hwreport.txt
line: "total_mem = {{ ansible_memtotal_mb | default('NONE') }}"
regexp: "^total_mem"
- name: change the data3
lineinfile:
path: /root/hwreport.txt
line: "bios_version = {{ ansible_bios_version | default('NONE') }}"
regexp: "^bios_version"
- name: change the data4
lineinfile:
path: /root/hwreport.txt
line: "vda_size = {{ ansible_devices['sda']['size'] | default('NONE') }}"
regexp: "^vda_size"
- name: change the data5
lineinfile:
path: /root/hwreport.txt
line: "vdb_size = {{ ansible_devices['sdb']['size'] | default('NONE') }}"
regexp: "^vdb_size"
ansible-playbook hwreport.yml
풀이과정
<사전준비>
1. 실제 url이 없으므로 node에 접속해 hwreport.txt 생성 후 권한 바꿔주기
vi /root/hwreport.txt
inventory_name =
total_mem =
bios_version =
vda_size =
vdb_size =
chmod 0755 /root/hwreport.txt
2. 플레이북 수정
- url 별도로 없으므로 해당 부분 삭제
- lsblk 명령어 통해 디스크 이름 확인 후 변경
- node 1번에만 테스트함
답 11)
- name: Create HW Report
hosts: node1
tasks:
- name: change the data1
lineinfile:
path: /root/hwreport.txt
line: "inventory_name = {{ ansible_hostname | default('NONE') }}"
regexp: "^inventory_name"
- name: change the data2
lineinfile:
path: /root/hwreport.txt
line: "total_mem = {{ ansible_memtotal_mb | default('NONE') }}"
regexp: "^total_mem"
- name: change the data3
lineinfile:
path: /root/hwreport.txt
line: "bios_version = {{ ansible_bios_version | default('NONE') }}"
regexp: "^bios_version"
- name: change the data4
lineinfile:
path: /root/hwreport.txt
line: "vda_size = {{ ansible_devices['xvda']['size'] | default('NONE') }}"
regexp: "^vda_size"
- name: change the data5
lineinfile:
path: /root/hwreport.txt
line: "vdb_size = {{ ansible_devices['sdb']['size'] | default('NONE') }}"
regexp: "^vdb_size"
<풀이>
1. 플레이북 실행 전 txt파일 확인
ansible node1 -m shell -a "cat /root/hwreport.txt"
2. 플레이북 작성 후 실행
ansible-playbook hwreport.yml
3. hwreport.txt 파일 확인
ansible all -m shell -a "cat /root/hwreport.txt"
'Linux > RHCE' 카테고리의 다른 글
[RHCE]사용자 계정 만들기/Cron 설정하기 (0) | 2025.05.31 |
---|---|
[RHCE]암호라이브러리/새 key 생성 (0) | 2025.05.31 |
[RHCE]hosts 파일 생성/파일 내용 수정하기 (0) | 2025.05.17 |
[RHCE]LV 생성 및 적용 (0) | 2025.04.14 |
[RHCE]System role 생성(custom) 및 실행 (1) | 2024.11.03 |