# 파일 모듈
copy 모듈은 local(컨트롤노드)이나 remote(관리노드)머신에서 remote(관리노드) 머신으로 파일을 복사한다
dest 파일을 복사 할 목적지
src (source) 복사할 파일 local path
mode 퍼미션 지정
복사 된 것을 확인
remote_src = true src가 원격이다
hi.sh가 local에 있는것이 아니라 원격에 있다. 원격에 있는 hi.sh를 복사한다
확인
한번 더 실행하면 복사되지 않는다
checksum 파일을 해시를 떠서 비교하여 변경되었는 되지 않았는지 확인한다
hello.sh 파일의 내용을 변경하면 파일이 복사가 된다
확인 (시간이 변경 되었다)
backup 이미 파일이 존재하는 경우 파일을 복사하게 되면 덮어쓴다. backup=true 이전 파일을 백업시킨다
오리지널 파일에 시간을 붙여서 파일을 복사한다
fetch모듈은 remote(관리노드)머신에서 local(컨트롤노드)머신으로 파일을 가져온다
확인
여러시스템에서 파일을 가져올 수 있기 때문에 인벤토리에 있는 호스트 이름의 디렉토리가 만들어지고 그 밑에 파일이 복사된다
file 모듈
symbolic link, 디렉토와 같은 파일의 속성을 다룬다
hi.sh가 파일입니까?
hi.sh가 디렉토리입니까? 아니기때문에 FAILED가출력된다
abc라는 파일이 있는가? absent 없다
touch 파일 생성
abc가 파일입니까? SUCCESS
xyz라는 디렉토리가 없으면 만들어진다
확인
파일이나 디렉토리를 삭제 할 수 있다
권한을 변경 할 수 있다
파일에서 특정 패턴을 찾아서 교체 할 수 있다
ldh라는 글자를 Dahye로 변경하겠다
regexp 정규화표현식
replace는 단어 교체 (단어)
lineinfile은 문자열 전체를 교체 (행)
Dahye단어가 있는 문자열을 찾아 전체를 ldh cloud로 교체
# 네트워크 도구 모듈
get_url 모듈 (wget과 비슷) 파일을 받을 때 사용한다
url = 파일을 받을 url
파일 확인
unarchive 모듈
archive를 푼다
확인
uri 사이트가 정상적으로 존재하는지확인
# 패키지 모듈
latest 최신버전을 설치
update_cache = apt 업데이트
yum은 yum명령어를 내릴때마다 자동으로 최신 패키지 목록 인덱스 정보를 가져온다
우분투는 인덱스가 없으면 패키지를 설치할 수 없어서 항상 apt update를 해주어야한다
vm을 처음 배포했을 때 우분투,데비안 계열은 인덱스를 가져오는것을 한번도 실행 한 적이 없기 때문에 apt update를 해주어야 한다.
absent 삭제
package 모듈
패키지를 설치, 업그레이드, 제거한다
apt모듈은 데비안 계열에서만 사용, yum 모듈은 레드햇 계열에서만 사용
패키지 모듈은 os패키지 관리자를 알아서 확인해서 패키지를 설치한다
# 시스템 모듈
service 모듈
유닉스의 모든 서비스를 하나의 모듈로 관리 할 수 있다
239 ansible -m apt 'name=apache2 state=present' -b 192.168.200.101
240 ansible -m apt -a 'name=apache2 state=present' -b 192.168.200.101
241 ansible -m apt -a 'name=apache2 state=absent' -b 192.168.200.101
242 ansible -m apt -a 'name=apache2 state=present' -b 192.168.200.101
243 ansible -m command -a 'apt install apache2 -y' -b 192.168.200.101
244 ansible -m apt -a 'name=apache2 state=absent' -b 192.168.200.101
245 ansible -m command -a 'apt install apache2 -y' -b 192.168.200.101
246 ansible -m command -a ls mgmt
247 clear
248 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550' 192.168.200.101
249 ansible -m command -a 'ls -l /home/devops/' 192.168.200.101
250 ansible -m copy -a 'src=hi.sh remote_src=true dest=/home/devops/hi2.sh mode=777' 192.168.200.101
251 ansible -m command -a 'ls -l /home/devops/' 192.168.200.101
252 ansible -m copy 'src=hi.sh remote_src=true dest=/home/devops/hi2.sh mode=777' 192.168.200.101
253 ansible -m copy -a 'src=hi.sh remote_src=true dest=/home/devops/hi2.sh mode=777' 192.168.200.101
254 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550' 192.168.200.101
255*
256 cat hello.sh
257 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550' 192.168.200.101
258 ansible -m command -a 'ls -l /home/devops/' 192.168.200.101
259 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550 backup=true' 192.168.200.101
260 ansible -m command -a 'ls -l /home/devops/' 192.168.200.101
261 vi hello.sh
262 cat hello.sh
263 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550 backup=true' 192.168.200.101
264 ansible -m command -a 'ls -l /home/devops/' 192.168.200.101
265 ansible -m fetch -a 'src=/home/devops/hi.sh dest=/home/devops' 192.168.200.101
266 ls
267 rm 192.168.200.101/
268 rm -f 192.168.200.101/
269 rm -rf 192.168.200.101/
270 ansible -m fetch -a 'src=/home/devops/hi.sh dest=/home/devops' 192.168.200.101
271 ls
272 ls -R 192.168.200.101/
273 ansible -m fetch -a 'src=/home/devops/hi.sh dest=/home/devops' 192.168.200.101
274 rm -rf 192.168.200.101/
275 ansible -m copy -a 'src=hello.sh dest=/home/devops/hi.sh mode=550 backup=true' mgmt
276 ansible -m fetch -a 'src=/home/devops/hi.sh dest=/home/devops' mgmt
277 ls
278 ansible -m file -a 'path=/home/devops/hi.sh state=file' 192.168.200.101
279 ansible -m file -a 'path=/home/devops/hi.sh state=directory' 192.168.200.101
280 ansible -m file -a 'path=/home/devops/abe state=file' 192.168.200.101
281 ansible -m file -a 'path=/home/devops/abc state=file' 192.168.200.101
282 ansible -m file -a 'path=/home/devops/abc state=touch' 192.168.200.101
283 ansible -m file -a 'path=/home/devops/abc state=file' 192.168.200.101
284 ansible -m file -a 'path=/home/devops/xyz state=directory' 192.168.200.101
285 ansible -m file -a 'path=/home/devops/xyz state=absent' 192.168.200.101
286 ansible -m file -a 'path=/home/devops/abc state=file mode=777' 192.168.200.101
287 ansible -m get_url -a 'url="https://wordpress.org/latest.tar.gz" dest=/home/dwvops/' 192.169.200.101
288 ansible -m get_url -a 'url="https://wordpress.org/latest.tar.gz" dest=/home/dwvops/' 192.168.200.101
289 ansible -m get_url -a 'url="https://wordpress.org/latest.tar.gz" dest=/home/devops/' 192.168.200.101
290 ansible -m file -a 'path=/home/devops/wordpress-5.8.tar.gz state=file' 192.168.200.101
291 ansible -m unarchive -a 'path=/home/devops/wordpress-5.8.tar.gz remote_src=true dest=/tmp' 192.168.200.101
292 ansible -m unarchive -a 'src=/home/devops/wordpress-5.8.tar.gz remote_src=true dest=/tmp' 192.168.200.101
293 ansible -m command -a 'ls -l /tmp' 192.168.200.101
294 ansible -m uri -a 'url=http://example.com' 192.168.200.101
295 ansible -m uri -a 'url=http://www.google.com' 192.168.200.101
296 ansible -m uri -a 'url=http://www.naver.com' 192.168.200.101
297 ansible -m commanr -a 'cat hi.sh' 192.168.200.101
298 ansible -m command -a 'cat hi.sh' 192.168.200.101
299 ansible -m replace -a 'path=/home/devops/hi.sh regexp="ldh" replace"Dahye" 192.168.200.101
300 ansible -m replace -a 'path=/home/devops/hi.sh regexp="ldh" replace"Dahye"' 192.168.200.101
301 ansible -m replace -a 'path=/home/devops/hi.sh regexp="ldh" replace="Dahye"' 192.168.200.101
302 ansible -m command -a 'cat hi.sh' 192.168.200.101
303 ansible -m replace -a 'path=/home/devops/hi.sh regexp="Dahye" line="dodu's cloud"' 192.168.200.101
304 ansible -m linefile -a 'path=/home/devops/hi.sh regexp="Dahye" line="dodu's cloud"' 192.168.200.101
305 ansible -m linefile -a 'path=/home/devops/hi.sh regexp="Dahye" line="ldh cloud"' 192.168.200.101
306 ansible -m lineinfile -a 'path=/home/devops/hi.sh regexp="Dahye" line="ldh cloud"' 192.168.200.101
307 ansible -m command -a 'cat hi.sh' 192.168.200.101
308 ansible -m apt -a 'name=apache2 state=latest cache_update=true' -b 192.168.200.101
309 ansible -m apt -a 'name=apache2 state=latest update_cache=true' -b 192.168.200.101
310 ansible -m apt -a 'name=apache2 state=absent update_cache=true' -b 192.168.200.101
311 ansible -m package -a 'name=apache2 state=present' -b 192.168.200.101
312 ansible -m service -a 'name=apache2 state=startes' -b 192.168.200.101
313 ansible -m service -a 'name=apache2 state=started' -b 192.168.200.101
314 ansible -m service -a 'name=apache2 state=stopped' -b 192.168.200.101
315 ansible -m service -a 'name=apache2 state=restarted' -b 192.168.200.101
316 ansible -m service -a 'name=apache2 state=reload' -b 192.168.200.101
317 ansible -m service -a 'name=apache2 state=reloaded' -b 192.168.200.101
'클라우드 > 앤서블(Ansible)' 카테고리의 다른 글
앤서블 Ansible 플레이북 ( playbook ) / wordpress 구성하기 1 (0) | 2021.07.29 |
---|---|
앤서블 Ansible Ad-hoc 명령으로 mysql 구성하기 (0) | 2021.07.28 |
앤서블 Ansible 명령 모듈 (0) | 2021.07.28 |
앤서블 Ansible 구성파일 / 관리노드 연결 (0) | 2021.07.28 |
앤서블 Ansible AWS 동적 인벤토리 (0) | 2021.07.28 |