목록클라우드/Ansible (15)
컬쥐네 다락방
변수 변수 정의 및 참조 template: src: foo.cfg.j2 dest: '{{ remote_install_path }}/foo.cfg' name: '{{ abc }}' dest: '{{ abc }}/abc.com' dest: '{{ abc }}'/abc.com #문법 오류 - hosts: 192.168.100.11 vars: msg: hello world tasks: - debug: var: msg - debug: msg: '{{ msg }} korea' - hosts: 192.168.100.11 vars: msg: hello world web: message: hello web fruits: - apple - banana tasks: - debug: msg: '{{ msg }} korea' ..
Ansible에서 Ad-hoc 명령을 통해 서버에 직접적으로 접속하지 않고도 여러 서버들을 관리할 수 있었다. 이런 방식을 yaml 파일을 통해 관리하고 정리하고 한번에 실행하는 방식이 Ansible의 Playbook이다. 야구 경기가 시작할 때 외치는 Playball에서 따왔다는 이야기가 있다. Playbook playbook: YAML 파일 .yaml, .yml play task test.yaml # Play - hosts: host1 tasks: # Task - yum: name: httpd state: installed # Task - service name: httpd state: started enabled: yes vim vim의 enhanced 모듈을 설치하면 탭키를 사용할 때 얼만큼 이동..
ad_hoc 명령 ansible -m -a https://docs.ansible.com/ansible/latest/user_guide/intro_patterns.html Wordpress 구성에 필요한 작업 패키지 설치: yum 서비스 제어: service 텍스트 수정: lineinfile, blockinfile, replace 압축: archive, unarchive 방화벽: firewalld, ufw, iptables 파일 복사: copy, fetch 파일 다운로드: get_url 데이터베이스 관리: mysql_db, mysql_user 파일 관리: file Ansible Jump Host with Bastion Host https://www.jeffgeerling.com/blog/2022/using..
구성 파일 https://docs.ansible.com/ansible/latest/reference\_appendices/config.html 설정파일 위치 ANSIBLE_CONFIG (environment variable if set) touch /tmp/ans.cfg export ANSIBLE_CONFIG=/tmp/ans.cfg ansible --version unset ANSIBLE\_CONFIG ansible --version ansible.cfg (현재 작업 디렉토리) ~/.ansible.cfg (홈디렉토리) /etc/ansible/ansible.cfg : 기본 설정 파일 관리 노드 접속 SSH 접속 방법 패스워드 인증 키 쌍 인증 권한 상승(Privilege Escalation) su(X) s..
인벤토리 https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#intro-inventory기본 인벤토리 파일 : /etc/ansible/hosts 일반적으로 사용하지 않는다. 기본 위치에 있는 인벤토리 파일이 아닌 -i 옵션을 사용 포맷 : ini ,yaml ini 형식의 예 key = value [Seection] key=value Inventory basics: mail.example.com [webservers] for.example.com bar.example.com [dbervers] one.example.com two.example.com three.example.com[] : 인벤토리 그룹 하나의 노드는 여러 그룹에 ..
SSH /etc/ssh/ ~/.ssh/ ~/.ssh/known_hosts ~/.ssh/authorized_keys ~/.ssh/config A(Client) ---SSH---> B(Server) 패스워드 기반의 인증 A는 B의 공개키 /etc/ssh/ssh_host_.pub /etc/ssh/ssh_host_ RSA DSA ECDSA (B 시스템에 최초 접속시) A의 시스템의 사용자에게 B의 공개키(지문) 맞는지 확인? YES A의 ~/.ssh/known_hosts 파일에 B의 공개키 등록 B의 IP/Domain B의 공개키 ID/PWD 묻는다!(인증) 키 기반의 인증 A에서 (인증용)키 쌍을 생성 ssh-keygen ~/.ssh/id_rsa: 개인키 ~/.ssh/id_rsa.pub: 공개키 B에 A의 공..
Ansible 개요 Ansible Ansible 아키택쳐 설정 모듈 인벤토리 Ad-hoc Playbook YAML 변수, 조건문, 반복문 포함, 역할 ... Vault : 암호화 AWX : 웹 인터페이스 (모니터링) Git, GitHub IaC 란? Infrastructure as Code : 코드형 인프라 장점 비용 절감 빠른 속도 안정성 재사용성 버전 관리 Ansible ? IT 인프라 구성 관리 자동화 도구 Ansible: OpenSSH 기반에서는 어떤것이든 관리할 수 있다. 용어 정리 제어 노드 Control Node, Controller, Ansible Engine 조건: Unix 계열만 가능, Python 관리노드 Managed Node, Target Node/Host .... BM, VM, ..