본문 바로가기

Automation Tools

(40)
1.9 ansible | [test][playbook] docker container start|stop tomcat, docker container 등을 start|stop|restart 할건지 prompt로 입력 받아 실행. --- - name: startup or stop docker container hosts: all gather_facts: yes become: yes vars_prompt: - name: container_name # container 이름 입력 받는 변수 prompt: " input container name? " private: no - name: select prompt: " choose start|stop|restart [default: start]? " private: no default: start # default 갓 설정 tasks: - name: "{{ conta..
1.8 ansible | [test][playbook] 파일 내용 수정 [root@ANSIBLE ansible]# cat lineinfile.yml --- - hosts: test02 become: true tasks: - lineinfile: path: /etc/nginx/nginx.conf line: include /etc/nginx/conf.d/*.conf; state: present notify: - restart nginx handlers: - name: restart nginx service: name: nginx state: restarted ## 파일 마지막에 추가됨(있으면 추가 안됨) 그리고 재시작 ## state 파리미터 ## absent : 삭제
1.7 ansible | [test][playbook] nginx 설치 [root@ANSIBLE ansible]# cat install_nginx.yml --- - name: "install nginx" hosts: test1 become: true tasks: - name: "yum install" yum: name: nginx state: installed notify: - restart nginx handlers: - name: restart nginx service: name: nginx state: restarted ## yum 모듈 설치 관련 state 파라미터 ## installed, present : 설치 ## latest : 최신 버전 설치 ## absent, removed : 삭제 ## handlers 는 tasks 와 기본적으로 하는 일은 같으나 차이점은..
1.6 ansible | [test][playbook] multi command [root@OPENLDAP-TEST ansible]# cat multi_command.yml --- - name: "command test" hosts: all become: true tasks: - name: "iptables insert" command: "{{ item }}" with_items: - iptables -D INPUT -s 2.2.2.2 - iptables -D INPUT -s 3.3.3.3 - iptables -D INPUT -s 4.4.4.4 - iptables -D INPUT -s 1.1.1.1 -j ACCEPT ## command, shell 모두 유효 ## with_items 로 여러 명령을 내릴수 있음.
1.5 ansible | [test][playbook] 서비스 데몬 실행 [root@OPENLDAP-TEST ansible]# cat setvice.yml --- - name: "sservice test" hosts: test02 become: true tasks: - name: "service test" service: name: docker state: started ## service관련 state 파라미터 ## started : 서비스 시작 ## stopped : 서비스 종료 ## restarted : 서비스 재시작 ## reloaded : 서비스 리로드
1.4 ansible | [test][playbook] 파일 내용 치환 [root@ANSIBLE ansible]# cat file_replace.yml --- - name: "replace file" hosts: test become: true tasks: - name: "file replcae" replace: path: /etc/hosts regexp: "192.168.6.135 docker2.plo.plo docker2" replace: "192.168.6.135 docker5.plo.plo docker5" ## regexp 내용을 -> replace 내용으로 변경
1.3 ansible | [test][playbook] 원격지에서 파일 가져오기 [root@OPENLDAP-TEST ansible]# cat fetch.yml --- - name: "fetch file" hosts: test02 become: true tasks: - name: "fetch files" # fetch 모듈 사용. fetch: src: /etc/hosts dest: /root/ flat: yes ## 주의 dest 경로 끝에 "/"을 꼭 붙여야 함. ## flat 을 추가 하지 않으면 src 경로 전체가 복사 됨.
1.2 ansible | [test][playbook] 파일 복사와 삭제 1. 파일 복사 playbook [root@ANSIBLE ansible]# cat copy_file.yml --- - name: "copy file" hosts: test02 become: true tasks: - name: "backup file" # command로 파일 선 백업 command: mv /hosts /hosts.bak - name: "copy files" # copy 모듈로 local -> remote로 파일 복사 copy: src: /etc/hosts dest: / 2. 파일 삭제 playbook [root@ANSIBLE ansible]# cat rm_file.yml --- - name: "delete file" hosts: test1 become: true tasks: - name:..
1.1 ansible | [test][playbook] 사용자 계정 추가 1. playbook [root@ANSIBLE ansible]# cat add_user.yml --- - name: "user add" hosts: test01 become: true # 권한 상승 tasks: - name: "user add" # user 모듈을 사용하여 사용자 추가 user: name: "{{ add_user_name }}" password: "{{ upassword | password_hash('sha512') }}" shell: "/bin/bash" - name: "Add user to sudoers" # lineinfile 모듈을 사용하여 권한상승 설정 추가 lineinfile: dest: /etc/sudoers regexp: "{{ add_user_name }} ALL" lin..
0. ansible 설치 1. 설치 [root@ANSIBLE ~]# yum install epel-release [root@ANSIBLE ~]# yum install ansible [root@ANSIBLE ~]# rpm -qa | grep ansible ansible-2.9.16-1.el7.noarch 2. host 등록 ## 기본 경로 [root@ANSIBLE ansible]# pwd /etc/ansible ## inventory 파일 (target host 정의) [root@OANSIBLE ansible]# cat hosts ... [test] test02 ansible_host={host ip} ansible_user={host ssh user} ansible_port={host ssh port} ansible_connec..