로컬 환경 구성/로컬 개발환경 구성 (10) 썸네일형 리스트형 10. Minikube를 활용한 k8s 환경 구축하기 # Minikube를 활용한 k8s 환 경 구축하기 (WSL을 기준으로 한다.) 1. Minikube 설치 - 도커 설치 (root 권한으로 실행) # ubuntu upgrade sudo apt-get update # docker install sudo apt install docker.io -y - 도커 권한을 수정한다. 예를 들어 생성한 user명이 newuser일 경우 아래의 변수 $USER에 newuser를 넣어주면 된다. sudo usermod -aG docker $USER && newgrp docker # 실행 명령어 sudo usermod -aG docker seungkim && newgrp docker - 도커 설치 확인 docker ps -a 2. minikube 다운로드 및 설치 - m.. 9. Ansible을 이용한 Docker 이미지 관리 with Jenkins # Ansible을 이용한 Docker 이미지 관리하기 1. docker image를 docker hub에 push하기 - 현재 컨테이너에 tag를 부여한다. docker tag cicd-project-ansible may9noy/cicd-project-ansible - Docker login을 수행한다. docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: may9noy Password: - 등록한 tag를 기반으로 docker hub에 push를 수행.. 8. Jenkins과 Ansible 연동 및 Ansible Playbook 사용하기 # Jenkins과 Ansible을 연동하기 1. Jenkins의 시스템 설정으로 이동한다. 하단으로 이동하면 ssh 서버를 등록하는 메뉴가 존재한다. 거기에 추가 아이콘을 클릭하여 Ansible 서버를 등록해 준다. 아래와 같이 기본정보를 입력해주고, 고급 버튼을 클릭하여 추가 정보를 입력한다. - 추가 설정은 아래와 같다. 테스트 커넥션을 클릭하여 연결이 정상적으로 되는지 확인한다. 위의 Success를 확인한다. 정상적으로 연결이 되었음을 확인할 수 있다. 2. Jenkins와 Ansible의 플레이북 사용하기 만약 아래와 같은 오류가 발생 했을 때에는 해당 경로의 내용을 삭제 해줘야 한다. seungkim@Local-ENV:~$ ssh root@localhost -p 10022 @@@@@@@@@@.. 7. Ansible Playbook 사용하기 # Ansible Playbook 사용하기 - Ansible Playbook은 사용자가 원하는 내용을 미리 작성해 놓는 파일이라고 볼 수 있다. 이전에는 1개의 명령어를 각각 실행하는 구조 였다면, play 북은 미리 작성해 놓고 사용한다는 의미로 생각하면 된다. - Playbool.yml 파일을 활용하여 새로운 hosts를 추가해보자. hosts의 ip는 172.17.0.5 이다. 파일명 : first-playbook.yml 파일의 내용 --- - name: Add an ansible hosts hosts: localhost tasks: - name: Add a ansible hosts blockinfile: path: /etc/ansible/hosts block: | [mygroup] 172.17.0.. 6. Ansible Module # Ansible Module 사용하기 https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html All modules — Ansible Documentation docs.ansible.com - 실행 명령어 예시는 아래와 같다. ansible all -m ping 이전에 ansible 서버에 hosts에 등록된 hosts를 기반으로 해당 모듈을 활용하여 작업을 수행한다 라고 볼 수 있다. -m 은 모듈을 뜻하고, ping은 모듈의 종류를 말한다. - ansible hosts에 등록된 서버들의 ping의 결과는 아래와 같다. [root@ansible-server ~]# ansible all -m ping 172.17.0.4 | SUCCES.. 5. Ansible 구성 # Ansible 서버 구성 - docker 이미지 실행하기 docker run --privileged -itd --name ansible-server -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup [docker-hub-id]/ansible:latest /usr/sbin/init - 로컬 환경에서 ansible을 조회하면 아래와 같은 결과를 확인할 수 있다. seungkim@DESKTOP-BUANL37:~$ sudo docker ps -a | grep ansible 566ba96afd13 edowon0623/ansible:latest "/sbin/init systemct…" 11 minutes ago Up 9 m.. 4. 현재까지의 구성 살펴보기 # 현재까지의 로컬 구성 확인하기 - 구성은 아래와 같다. - 로컬에 도커 컨테이너 2개가 기동 되어 있고, 1개의 컨테이너는 OS 내부에 또다른 컨테이너를 포함하고 있다.(위의 그림 참조) 그래서 Jenkins 컨테이너에서 또다른 컨테이너 내부에 배포를 할 경우 ssh 를 통해 접근을 해야한다. - 그리고 docker 컨테이너 환경도 하나의 네트워크로 구성이 되므로 만약 로컬 환경에 설치된 tomcat 서버가 존재 한다면 ip 설정을 할때 docker container → windows ip adress 로 설정을 해줘야지만 정상적으로 커넥션이 이루어진다. - 참고로 docker 네트워크를 확인하는 명령어는 아래와 같다. # 네트워크 목록확인 docker network ls # 컨테이너 내의 네트워크 .. 2. Git, 메이븐 설정, 새 프로젝트 생성 톰캣 연동하기 # git 설정 jenkins 관리 → 글로벌 툴 컨피그레이션 → 아래와 같이 세팅한다. # 메이븐 설정 jenkins 관리 → 메이븐 플러그인 검색 후 설치 - jenkins 관리 → 글로벌 툴 컨피그레이션 → 아래와 같이 세팅한다. # 새 프로젝트 생성하기 (git과 maven 이용) 새로운 아이템 생성 이름은 Second-Project → 메이븐 프로젝트 선택 후 하단 OK 클릭 - 해당 프로직트에서의 git 설정 - 메이븐 설정 - jenkins 도커 컨테이너 내부로 이동하여 빌드된 war 파일이 정상적으로 있는지 확인하기 경로 : /var/jenkins_home/workspace hello-word.war 파일을 확인 할 수 있다. drwxr-xr-x 3 jenkins jenkins 4096 M.. 이전 1 2 다음