지금까지 사용해보았던 모듈을 정리해보았습니다.
yum
- 패키지 관리하는 yum 명령어 입니다.
- yum을 사용하여 패키지의 버전을 선택하여 다운 받거나 삭제 할 수 있습니다.
ex) - name: install yum package yum: name: httpd state: latest (or) present (or) .....
file
- 파일의 소유자, 그룹, 권한 등을 변경 할 수 있다.
- 파일의 경로와 파일의 이름을 통해 삭제 할 수 있습니다.
- 파일의 형식(touch)을 정하여 원하는 경로 파일을 생성 할 수 있습니다.
ex) - name: file의 own & mode 변경 file: path: /var/www/html/index.html owner: aa group: aa mode: '0755' - name: /var/www/html 경로의 index.html 삭제 file: path: /var/www/html/index.html state: absent -name: 파일 생성 file: path: /var/www/html/index1.html state: touch owner: bb group: bb mode: '0644'
lineinfile
- 파일의 내용 중 원하는 한 줄의 내용을 변경 할 수 있다.
- 주의 할 사항으로는 regexp로 지정한 내용이 있는 줄의 전부를 line으로 적은 내용으로 바꾼다.
ex) - name: 특정 줄 변경 lineinfile: path: /var/www/html/index1.html regexp: 'this line will change' line: 'change complete' => regexp 의 내용을 line 의 내용으로 바꿔준다.
replace
- 파일의 내용 중 원하는 '단어' 만 바꿀 수 있다.
ex) - name: 특정 단어 변경 replace: path: /var/www/html/wp-config.php regexp: 'database_name_here' replace: 'wordpress_db' => wp-config.php 파일에서 'database_name_here' 단어를 'wordpress_db' 로 바꿔준다.
get_url
- linux의 wget과 같은 역할을 한다.
ex) - name: wget과 같다 get_url: url: https://ko.wordpress.org/wordpress-5.8.6-ko_KR.tar.gz dest: /root => /root 경로에 wordpress-5.8.6-ko_KR.tar.gz 파일을 다운 받는다.
unarchive
- tar, zip과 같은 파일을 압축 해제 한다.
ex) - name: 압축 해제 unarchive: src: /root/wordpress-5.8.6-ko_KR.tar.gz dest: /var/www/html/ => src 경로에 있는 tar파일을 압축을 해제하여 dest 경로에 풀어준다.
shell
- linux에서 사용하는 쉘 명령어를 anisble에서 그대로 사용을 하도록 하는 모듈 입니다.
ex) - name: shell 명령어 사용 shell: 'cp /root/wordpress-5.8.6-ko_KR.tar.gz /var/www/html/' => 쉘에서 사용하는 명령어를 그대로 ansible의 yaml 파일에서 사용 할 수 있다.
copy
- 파일을 원하는 경로에 복사 할 수 있다.
ex) - name: 파일 복사 copy: src: /root/wordpress-5.8.6-ko_KR.tar.gz dest: /var/www/html => src 경로의 파일을 dest 경로에 복사 한다.
service
- linux의 서비스(데몬)을 실행 할 수 있다.
ex) - name: httpd 서비스 시작 service: name: httpd state: started (or) restarted (or) stoped enabled: yes => httpd 서비스를 시작한다. => (enabled =yes) 서버를 시작하면 항상 시작하도록 설정
systemd
- linux의 서비스(데몬)을 실행 할 수 있다.
- systemctl로 동작 할 때는 service보다 systemd가 더 좋다.
ex) - name: httpd 서비스 시작 systemd: name: httpd state: started (or) stoped (or) restarted enabled: yes => httpd 서비스를 시작한다. => (enabled =yes) 서버를 시작하면 항상 시작하도록 설정
blockinfile
- 파일의 특정 줄 밑에 or 앞에 원하는 문장을 넣을 수 있다.
- block: 다음에 "|" 기호나 ">" 를 넣어주어야 한다.
- "|" 기호는 줄 바꿔서 내용이 나오고, ">" 기호는 한 줄에 나열된다.
ex) - name: blockinfile: path: /etc/nginx/nginx.conf insertbefore (or) insertafter: "listen 80;" block: | index index.php => "listen 80;" 이라는 문장 앞이나 뒤에 "index index.php" 라는 문장을 넣어준다.
firewalld
- 방화벽을 열거나 닫아줄 수 있다.
ex) - name: firewall open firewalld: port: 80/tcp state: enabled permanent: yes immediate: yes => 80번 포트를 tcp로 열어준다. => permanent를 사용하려면 immediate 옵션을 무조건 넣어주어야 한다.