DevOps16 Ansible 작동방식 오픈소스 기반의 자동화 관리 도구로 하나의 중앙 위치에서 여러 서버를 관리하고 제어한다. SSH통신으로 호스트 서버에 접근한다. 장점 수행해야하는 반복적인 작업이 있을 때 사용하기 적합하다. 특정환경을 동일하게 만들 수 있다. 호스트 서버에 에이전트를 설치할 필요가 없다. 1) Controller 서버 ansible이 설치된 서버 2) 인벤토리 호스트 서버들의 목록 /etc/ansible/hosts 파일에 위치해 있음 https://runebook.dev/ko/docs/ansible/user_guide/intro_inventory 3) playbook 호스트 서버에 전달할 명령어들을 모아둔 명령어집 즉, 스크립트 파일을 말함 yaml/yml 파일 형식으로 되어 있으며 ansible playbook을 이용.. 2022. 12. 19. [Ubuntu] Docker 설치하기 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com Ubuntu 20.04에 Docker를 설치하려고 한다. 레파지토리 설정하기 https를 통해 레파지토리를 사용하기 위해 패키지를 설치 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release docker의 공식 GPG key를 등록 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/d.. 2022. 5. 31. Ansible 기본 /etc/ansible/ansible.cfg - 환경 설정 파일 /etc/ansible/hosts - 앤서블이 접속하는 호스트들에 대한 정보 -i 적용될 호스트들에 대한 파일 -m 모듈을 선택할 수 있음 -k 패스워드를 물어보도록 설정 -K 관리자로 권한 상승 --list-hosts 적용되는 호스트들을 확인 uptime 확인하기 ansible all -m shell -a "uptime" -k 디스크 용량 확인하기 ansible all -m shell -a "df -h" 메모리 확인하기 ansible all -m shell -a "free -h" -k user 만들기 ansible all -m user -a "name=testgroup password=1234" -k user잘 만들어졌는지 확인하기 2022. 4. 21. [Ubuntu] Ansible-Playbook log 저장하기 실행했던 ansible-playbook 로그가 저장된 파일이 당연히 있을 거라고 생각해서 여기저기 찾아보고 다녔는데 알고 보니 playbook log를 남기기 위해서 따로 경로를 지정해주어야 했다. 로그는 당연히 남는게 아니었나?? 왜지?? 아무튼 계속 삽질하면서 로그를 저장하는 방법을 찾았다~! /etc/ansible경로안에 ansible.cfg파일에 들어가 [defaults] 안에 log_path = /var/log/ansible.log의 주석을 지워준다 ansible-playbook를 실행할 때 꼭 -v 명령어를 넣어주어야 한다. 아닐 시 아래와 같은 문구가 playbook 실행 초반에 나타난다. -v명령어를 포함한 playbook을 실행시키면 초반 화면이 아래와 같이 보인다. -v 작업결과가 포함.. 2022. 3. 24. [Ubuntu] Redis start/stop Playbook 우선 redis서버가 연결이 잘 되어있는지 ansible -m ping [그룹이름] 으로 확인해준다 Redis start --- - hosts: redis become: true tasks: - name: start redis service: name=redis state=started ansible-playbook [파일이름].yml 으로 playbook을 실행시켜준다 redis서버로 들어가서 확인해주면 redis가 잘 실행되고 있음을 확인할 수 있다 Redis stop --- - hosts: redis become: true tasks: - name: stop redis service: name=redis state=stopped ansible-playbook [파일이름].yml 으로 playbook.. 2022. 1. 25. [Ubuntu] mongoDB start/stop Playbook 우선 db서버가 연결이 잘 되어있는지 ansible -m ping [그룹이름] 으로 확인해준다 mongoDB start --- - hosts: db become: true tasks: - name: start mongodb service: name=mongod state=started ansible-playbook [파일이름].yml 으로 playbook을 실행시켜준다 db서버로 들어가서 확인해주면 mongodb가 잘 실행이 되었음을 확인할 수 있다 mongoDB stop --- - hosts: db become: true tasks: - name: stop mongodb service: name=mongod state=stopped ansible-playbook [파일이름].yml 명령어로 mongod.. 2022. 1. 18. [Ubuntu] playbook 만들기 - update, reboot, stop 모든 서버 update하기 playbook sudo vim update.yml --- # update server - hosts: all tasks: - name: Update and upgrade apt all packages become: true apt: upgrade: yes update_cache: yes cache_valid_time: 86400 #One day ansible-playbook update.yml 으로 playbook을 실행해준다 모든 서버 reboot 하기 sudo vim reboot.yml --- # reboot all server - hosts: all become: true tasks: - name: rebooting server reboot: ansible-playboo.. 2022. 1. 11. [Ubuntu] user 안 만들고 바로 ansible 연결하기 - 호스트 계정 - ubuntu 기본 계정에 비밀번호를 설정해준다. sudo passwd [user이름] sudo vim /etc/ssh/sshd_config 으로 들어가 아래와 같이 내용을 변경해준다 PermitRootLogin prohibit-password ==> PermitRootLogin yes PasswordAuthentication no ==> PasswordAuthentication yes sudo service ssh restart 명령어를 통해 ssh를 재시작시켜준다 - ansible 계정 - sudo vim /etc/ansible/hosts 에 IP를 추가해준다 ([host]는 host라는 그룹을 만들어준다는 의미) 앤서블 설치를 해준다 sudo apt update sudo apt i.. 2022. 1. 10. [Ubuntu] MongoDB 설치하기 ubuntu 20.04에 mongodb설치하기 lsb_release -dc로 우분투 버전을 확인해준다 wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - 명령어를 통해 MongoDB public GPG key를 가져온다 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 명령어를 통해 ubuntu 20.04버전에 맞는 list를 만들어준다 sudo apt-get update 명령어로 서.. 2022. 1. 5. [Ubuntu] ansible 설치하고 연결하기 다른분들의 설치 방법을 보고 따라했으나 계속 Permission denied (publickey)가 나와서 울면서 일주일은 공부했다ㅠ 본인은 아래와 같은 방법으로 성공했다 ansible서버와 host서버 둘 다 AWS EC2 Ubuntu Server 20.04 LTS (HVM), SSD Volume Type 를 사용해서 만들었다 + user 안만들고 바로 연결할 수 있는 방법을 알아냈다!! 여기를 클릭하면 바로 연결된다 Ansible 서버 - 172.31.45.110 호스트 서버 db 1 - 172.31.44.97 db 2 - 172.31.36.189 호스트 서버에 user를 만들어준다 sudo adduser (user이름) 비밀번호 설정해주기! db1 db2 sudo vim /etc/ssh/sshd_c.. 2022. 1. 3. [aws linux2] Playbook 만들기 - 파일 복사하기 Ansible파일을 복사해서 host서버에 저장하기 sample.txt라는 이름의 파일을 만들어 아래 내용을 저장해준다 ansible 서버에 존재하는 sample.txt의 경로는 /home/ec2-user/.ssh/test/sample.txt 이고, host 서버에 sample.txt를 저장할 위치는 /home/ec2-user/sample.txt 이다 --- # copy ansible file to host server - hosts: all remote_user: root tasks: - name: copy file to host server copy: src: /home/ec2-user/.ssh/test/sample.txt dest: /home/ec2-user/sample.txt backup: yes.. 2021. 12. 27. [aws linux2] Playbook 만들기 - update, shutdown 모든 서버 update하기 경로 더보기 더보기 /home/ec2-user/.ssh/test/playbook command창 명령어로는 sudo yum update vi svc_update.yml 파일을 만들어준다 --- - name: all server update hosts: all tasks: - name: upgrade all packages yum: name: '*' state: latest ansible-playbook svc_update.yml 으로 playbook을 실행해준다 3개의 서버는 이미 update를 해준 상태이고 하나는 아니였다 아래 playbook을 실행 한 후 54.250.74.182에 들어가 명령이 잘 수행되었는지 확인했다 굳b 모든 서버 shutdown하기 명령어를 치고있는.. 2021. 12. 16. 이전 1 2 다음 반응형