일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JPA
- cloud
- Java
- 허브
- AOP
- Linux
- jdk
- tomcat
- 라우터
- DevOps
- Set
- map
- container
- Collection
- sonarQube
- post
- 소켓
- ansible
- Pipeline
- 캐시서버
- 방화벽
- STREAM
- mybatis
- gradle
- IntelliJ
- LAN어댑터
- Jenkins
- docker
- 액세스회선
- Spring
- Today
- Total
목록분류 전체보기 (195)
거북이-https://velog.io/@violet_evgadn 이전완료
1. 새로운 Item > Pipeline Section 선택하여 Item 생성 2. Pipeline Section 기입 Definition : Pipeline script 선택 Script : 이전 Section에서 배웠던 Jenkins Declarative Script Syntax 활용 pipeline { agent any stages { stage('Compile') { steps { echo "Compiled successfully!"; } } stage('JUnit') { steps { echo "JUnit passed successfully!"; } } stage('Code Analysis') { steps { echo "Code Analysis completed successfully!"; }..
여기에 정리한 내용은 https://www.jenkins.io/doc/book/pipeline/syntax/ 를 기반으로 작성되었음을 알린다. 그림으로 한눈에 보는 Pipeline Script 활용 진한 글씨로 되어 있는 구문은 필수 구문, 연한 글씨는 사용 여부를 선택할 수 있는 구문이다. 위 사진에서 볼 수 있듯 "step"이라는 구문 안에는 DSL, 즉 Declarative Script 고유 문법의 문장이 들어가게 된다. 이 문법을 다 외워 DSL 문을 직접 생성하게 하는 것은 난이도가 너무 높고 활용성이 떨어진다. 따라서 Jenkins 측에서는 "Pipeline Syntax"라는 기능을 통해 원하는 Step 작업에 대한 DSL 문을 자동 생성해주는 기능을 제공한다. 이 Pipeline Syntax..
Jenkins Pipelnie Script 종류 ◎ Declarative Pipeline Declarative Pipeline은 Jenkins Pipeline의 최신 기능으로써 Script 구조가 잘 정의되어 있다. 따라서 Scripted보다 가독성이 좋으며 개발자가 사용할 수 있는 구문 기능도 훨씬 다양하다. 단지 Script 구조가 너무 잘 정의되어 있어 Scripted Pipeline보다는 제한적인 기능을 가진다. Script 구조가 잘 정의되어 있어 제한적인 기능을 가진다는 말이 이해가 안 된다면 Windows 같은 경우 사용이 쉽지만 서버 설정 폭이 좁으며 AWS EC2나 VM Container의 Linux 서버는 사용은 어렵지만 수행할 수 있는 서버 설정 폭이 넓다는 것을 생각하면 될 것이다...
Jenkins Pipeline이란? Jenkins Pipeline이란 연속적인 작업들을 Jenkins에서 1개의 Pipeline으로 묶어 관리할 수 있게 만들어주는 Plugin이다. Jenkins의 기본 작업 단위를 Item이라고 했는데, 이 Item을 연쇄적으로 수행시킴으로써 전체적인 1개의 CI/CD 흐름을 생성 및 관리해주는 Plugin이라고 생각하면 된다. 간단히 말하자면 여러 개의 Item을 하나로 묶어 관리할 수 있게 하는 것이 Jenkins Pipeline이다. 이 과정에서 의문이 생긴다. 굳이 Pipeline을 활용해아할까? 이전까지 우리는 1개의 Item을 가지고서도 충분히 Build 및 배포 과정을 수행할 수 있었다. Item 1개만으로도 자동화된 CI/CD 과정을 구축할 수 있는데 굳..
이미지 등록을 위해선 Docker Hub에 회원가입이 되어 있어야 한다. 우리는 이전에 Docker Hub에 회원가입을 수행했었기 때문에 바로 Image 등록 과정으로 넘어가자. 1. Docker Hub > My Profile > Repositories에 등록된 Image 확인 필자는 Docker Image를 등록시킨 적이 없으므로 Repository가 없을 것이다. 2. Docker Image 복사 기존에 존재하는 "cicd-project-ansible"이라는 Image를 Docker Hub에 등록시키고 싶다. 물론 cicd-project-ansible을 그대로 Docker Hub에 등록해도 된다. 하지만 이전에 말했듯 Docker Hub의 Repository 이름에 대한 Convention은 "[계정..
1. Jenkins 관리 > 시스템 설정 > Publish over SSH에 Ansible-Server 추가 이전 Docker Server를 설정한 것과 동일한 방식으로 설정한다. 필자는 이전과 마찬가지로 Windows에 Jenkins를 설치하였기 때문에 Username은 localhost, Port는 20022로 지정하도록 하겠다. 2. Ansible Project(새 Item) 생성 https://turtlewalk.tistory.com/96 SSH Server에 Build 결과물 넘기기 1. 3번째 프로젝트 Copy 해서 새 Item 생성 https://turtlewalk.tistory.com/91 설치 가능에서 deploy to 검색 & " data-og-host="turtlewalk.tistor..
Ansible Playbook 구조 Ansible Playbook 작성을 조금 더 쉽게 하려면 Ansible Playbook 구조를 알아두면 좋다. Ansible Playbook은 위 사진과 같은 구조를 하고 있는데 이를 Playbook - Play - Tasks 구조라고 한다.(네이밍 센스 무엇..) 먼저 Playbook은 Ansible Playbook File 1개를 의미한다. 우리는 Ansible Playbook을 활용하여 일괄적으로 모든 Ansible Node들에게 원하는 서버 설정을 적용할 수 있다. Playbook은 1개 혹은 여러 개의 Play로 이루어져있다. Play는 설정해야 하는 여러 개의 Infra 설정 중 Infra 1개에 대한 설정을 의미한다. Play는 1개 혹은 여러 개의 Ta..
Ansible Server에서 Remote Host 접근 가능 여부 확인 ansible all -m ping Ansible Server에서 /etc/ansible/hosts에 지정했던 모든 Remote Host에 접근 가능한지를 확인하는 과정이다. Remote Host에 Ping 신호를 보냄으로써 정상적으로 Return 신호가 올 경우 Ansible Server 측에서 성공적으로 Ansible Node 측에 접근할 수 있음을 확인 할 수 있다. Ansible을 통해 shell 명령어 수행 ansible all -m shell -a "[Shell 명령어]" 이 때 Shell 명령어를 Ansible Server 측에서 수행하는 것이 아닌 Ansible Server와 연결된 Ansible Node 측에서 Sh..
Ansible 명령어 ◎ Ansible Option -i(--inventory-file) Remote Host에 대한 정보(IP Address)를 담은 파일 -i 옵션이 설정되지 않을 경우 Default로 /etc/ansible/hosts 파일을 사용함 -m(--module-name) 원하는 모듈을 선택 모듈은 Ansible의 핵심으로 아래에서 자세히 설명하겠다 -k(--ask-pass) 관리자 암호 요청 -K(--ask-become-pass) 관리자 권한 상승 --list-hosts 접속할 Remote Host들의 IP Address들을 직접 입력 개인적으로는 -i Option이 깔끔하고 관리가 쉽기 때문에 활용을 추천하지는 않는다. ◎ 멱등성 Ansible Command의 가장 큰 특징은 멱등성을 가..
SSH Key ◎ SSH Key란? 원래 SSH를 통해 Server에 접속하는 과정에서 Username과 Password를 입력하는 것이 일반적이다. 하지만 이 경우 Server에 접속할 때마다 매번 Username과 password를 입력해야 하는 귀찮은 작업이 수행되어야 하며 Username과 Password를 분실할 위험성도 존재한다. 이러한 위험성을 해결하면서도 간편함을 챙길 수 있는 방법이 바로 SSH Key이다. SSH Key는 서버에 접속할 때 비밀번호 대신 미리 생성되어 있는 Key를 제출하는 방식이다. Username-Password 방식이 번호 도어락이라면 SSH Key 방식은 열쇠문이라고 할 수 있겠다. SSH Key는 비밀번호보다 높은 수준의 보안을 필요로 하는 상황이나 로그인 없이..