젠킨스 빌드 실행 시 아래와 같이 구동하도록 했다.
1. 젠킨스에서 빌드 파라매터로 마운트 디스크와 마운트 디렉터리 경로를 받는다.
2. yml파일내 loop 매개변수를 쉘 스크립트로 삽입
3. ansible 플레이북을 수행하도록한다.
4. 수행 완료되면 yml파일 내 loop 매개변수를 제거한다.
아래 코드는 2번에서의 실행 쉘 스크립트이다.
#!/bin/bash
mount_list=/data/ansible/file/mount_list
job_cnt=`cat $mount_list | wc -l`
for ((var=1 ; var <= $job_cnt ; var++));do
mount_disk=`cat $mount_list | head -n$var | tail -n1 | awk '{print $1}'`
mount_dir=`cat $mount_list | head -n$var | tail -n1 | awk '{print $2}'`
sed -i'' -r -e "/ loop:/a\ - { mount_disk: '$mount_disk', mount_dir: '$mount_dir' }" /data/ansible/linux_automount.yml
done
state 옵션
- 헷갈릴 수 있으니 주의하자
- mounted : 디스크를 마운트하고 /etc/fstab에 디스크 마운트 정보 등록
- absent: 디스크 마운트 해제하고/etc/fstab에서도 삭제함
- present : /etc/fstab에 디스크 마운트 정보 등록 (마운트는 하지 않음)
- unmounted : 디스크 마운트 해제하고 /etc/fstab에서도 삭제하지 않음(단순 마운트 해제)
---
- hosts: all
become: yes
vars:
ansible_become_password: "비밀번호"
tasks:
- name: disk format
filesystem:
fstype: ext4
dev: "{{ item.mount_disk }}"
loop:
- { mount_disk: '/dev/sdb', mount_dir: '/data/test01' }
- { mount_disk: '/dev/sdc', mount_dir: '/data/test02' }
- name: mkdir mount_dir
shell:
cmd: "mkdir -p /data/{{ item.mount_dir }}"
loop:
- { mount_disk: '/dev/sdb', mount_dir: '/data/test01' }
- { mount_disk: '/dev/sdc', mount_dir: '/data/test02' }
- name: mount disk & register /etc/fstab
mount:
path: "{{ item.mount_dir }}"
src: "{{ item.mount_disk }}"
fstype: ext4
state: mounted
loop:
- { mount_disk: '/dev/sdb', mount_dir: '/data/test01' }
- { mount_disk: '/dev/sdc', mount_dir: '/data/test02' }
- name: collect disk inform
shell:
cmd: df -h
register: diskk
- name: show disk
debug:
msg: "{{ diskk.stdout_lines }}"
반응형
'인프라 > 앤서블(Ansible)' 카테고리의 다른 글
[Ansible] ansible 명령어로 패스워드 없이 수행하기 (0) | 2022.07.14 |
---|---|
[Ansible] ansible linux tgz 압축해제 (0) | 2022.07.11 |
[Ansible] 파일 암호화 하기 vault (0) | 2022.06.30 |
[Ansible] Distribution Ubuntu 18.04 on host x.x.x.x should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior Ansible releases (0) | 2022.06.29 |
[Ansible] AWX OpenLDAP 연동 설정 (0) | 2022.06.14 |
댓글