⇥ DevOps Tech 🙋🏻♀️
-
HTML 삽입 미리보기할 수 없는 소스 Ansible 의 role(롤) 은 Playbook을 여러 파일로 분할하는 개념이다. 즉 자주 재사용 되는 특정 동작을 role 로 작성 해놓으면 재사용을 통해 손쉽게 플레이북을 만들 수 있다. ansible 에서는 role 을 작성하기 위한 directory 구조와 동작을 지원하는 모듈 개념이 있다. 작성 관련은 공식 문서에 자세히 안내하고 있어서 사용을 원하는 동작이나 이해가 안되는 부분은 공식 문서에서 참고 할 수 있다. https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html Roles — Ansible Documentation The classic (original) ..
Ansible Role 작성 방법HTML 삽입 미리보기할 수 없는 소스 Ansible 의 role(롤) 은 Playbook을 여러 파일로 분할하는 개념이다. 즉 자주 재사용 되는 특정 동작을 role 로 작성 해놓으면 재사용을 통해 손쉽게 플레이북을 만들 수 있다. ansible 에서는 role 을 작성하기 위한 directory 구조와 동작을 지원하는 모듈 개념이 있다. 작성 관련은 공식 문서에 자세히 안내하고 있어서 사용을 원하는 동작이나 이해가 안되는 부분은 공식 문서에서 참고 할 수 있다. https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_reuse_roles.html Roles — Ansible Documentation The classic (original) ..
2023.10.18 -
HTML 삽입 미리보기할 수 없는 소스 Ansible Tower 는 17.1.0 까지의 Docker Version 과 k3s 를 지원하는 이후의 버전으로 나뉜다. 실제 사용해본 바로 k3s 버전은 서비스 배포 시 pod 를 생성하여 각 job 을 진행하기 때문에 고사양 서버에서 운영할 것이 아니라면 docker Version 이 좀 더 좋은 선택이라고 생각한다. (실제 쿠버네티스에서 사용할거면 이거를 굳이..?) HTML 삽입 미리보기할 수 없는 소스 Ansible Tower 설치 시 필요로 하는 라이브러리 버전은 설치할 때 사용한 버전을 명시하였다. 내 기억으로 docker, ansible 은 패키지 관리자로 그냥 설치하면 되는데 Python은 버전이 낮으면 정상 동작되지 않았던 것으로 기억함. 3.8..
Ansible Tower (AWX) 설치 방법HTML 삽입 미리보기할 수 없는 소스 Ansible Tower 는 17.1.0 까지의 Docker Version 과 k3s 를 지원하는 이후의 버전으로 나뉜다. 실제 사용해본 바로 k3s 버전은 서비스 배포 시 pod 를 생성하여 각 job 을 진행하기 때문에 고사양 서버에서 운영할 것이 아니라면 docker Version 이 좀 더 좋은 선택이라고 생각한다. (실제 쿠버네티스에서 사용할거면 이거를 굳이..?) HTML 삽입 미리보기할 수 없는 소스 Ansible Tower 설치 시 필요로 하는 라이브러리 버전은 설치할 때 사용한 버전을 명시하였다. 내 기억으로 docker, ansible 은 패키지 관리자로 그냥 설치하면 되는데 Python은 버전이 낮으면 정상 동작되지 않았던 것으로 기억함. 3.8..
2023.10.17 -
배포를 하다 보면 나가면 안 되는 사항이 배포되거나, 문제로 인해서 되돌려야 하는 상황이 있다. 이에 대한 정책을 롤백이라고 하며 각 배포 방식에서 롤백은 어떻게 진행되는지에 대해서 간단히 정리하고자 하는 문서이다. SemVer 란 ? 그렇다면 우리는 어디까지가 이전에 배포되었던 코드이며, 어디부터 되돌려야 하는지 같은 기준점이 필요하다. 기준점을 관리하기 위한 제안을 위해 도입된 정책이며 다양한 곳에서 사용 중인 Semantic Versioning 기법이다. SemVer -> Semantic versioning 체계적인 버전관리를 위한 제안, 배포 정책이나 시기에 따라서 버전이 매겨지거나, 의미 없는 버전 상승을 지양하여 버저닝에 대한 명확한 의미를 부여 버전의 형식 : Major.Minor.Patch..
Rollback (Semver, Rolling, blue/green)배포를 하다 보면 나가면 안 되는 사항이 배포되거나, 문제로 인해서 되돌려야 하는 상황이 있다. 이에 대한 정책을 롤백이라고 하며 각 배포 방식에서 롤백은 어떻게 진행되는지에 대해서 간단히 정리하고자 하는 문서이다. SemVer 란 ? 그렇다면 우리는 어디까지가 이전에 배포되었던 코드이며, 어디부터 되돌려야 하는지 같은 기준점이 필요하다. 기준점을 관리하기 위한 제안을 위해 도입된 정책이며 다양한 곳에서 사용 중인 Semantic Versioning 기법이다. SemVer -> Semantic versioning 체계적인 버전관리를 위한 제안, 배포 정책이나 시기에 따라서 버전이 매겨지거나, 의미 없는 버전 상승을 지양하여 버저닝에 대한 명확한 의미를 부여 버전의 형식 : Major.Minor.Patch..
2023.10.16 -
이전에 젠킨스에서 git clone, build 를 하는 방법에 대해 포스팅했었다. 2023.10.11 - [✏️ Jenkins] - Jenkins Pipeline 으로 git clone , build 수행하기 Jenkins Pipeline 으로 git clone , build 수행하기 Jenkins Pipeline 으로 CI/CD 를 구축할 때 가장 기본적으로 repository 에서 git 을 clone 하여 build 하는 과정은 반드시 존재한다. 이 과정이 CI (Continuous Integration) 으로 지속적인 통합이라고 할 수 있다. 즉 jjoyling.tistory.com 여기서 빌드된 아티팩트는 젠킨스의 workspace 에 존재하게 될 뿐이고, 배포 시 어떻게 사용해야 할지 알아보..
Jenkins 에서 빌드한 artifact 를 Ansible 로 넘기는 방법 [nginx file hosting]이전에 젠킨스에서 git clone, build 를 하는 방법에 대해 포스팅했었다. 2023.10.11 - [✏️ Jenkins] - Jenkins Pipeline 으로 git clone , build 수행하기 Jenkins Pipeline 으로 git clone , build 수행하기 Jenkins Pipeline 으로 CI/CD 를 구축할 때 가장 기본적으로 repository 에서 git 을 clone 하여 build 하는 과정은 반드시 존재한다. 이 과정이 CI (Continuous Integration) 으로 지속적인 통합이라고 할 수 있다. 즉 jjoyling.tistory.com 여기서 빌드된 아티팩트는 젠킨스의 workspace 에 존재하게 될 뿐이고, 배포 시 어떻게 사용해야 할지 알아보..
2023.10.16 -
M1 Chip Mac 에서는 녹스나 블루스택 등 실행이 잘 안된다. 그에 대한 우회방안으로 안드로이드 스튜디오에서 테스트를 위해 사용하는 AVD (Android Virtual Device) 기능을 이용하여 대체할 수 있다. 테스트를 위한 기능을 사용하여 안드로이드를 실행하는 개념이라고 생각하면 될 것 같다. 이전에는 Android Studio 에서 arm64 칩에 대한 지원을 안했던 것으로 보이는데 이제는 지원하고 있어서 그냥 VDM 에서 실행해도 상관은 없을 것 같다. 하지만 에뮬레이터로 설치하면 안드로이드 스튜디오는 독립적이기 때문에 개발자가 아닌 이상 그냥 에뮬레이터만 사용해도 되기 때문에 아래 방식으로 하는게 더 나은 것 같다는 생각이다. Android Emulator 를 설치한다. 아래 주소에서..
Mac M1 Chip 에서 android emulator 실행 (nox, bluestack)M1 Chip Mac 에서는 녹스나 블루스택 등 실행이 잘 안된다. 그에 대한 우회방안으로 안드로이드 스튜디오에서 테스트를 위해 사용하는 AVD (Android Virtual Device) 기능을 이용하여 대체할 수 있다. 테스트를 위한 기능을 사용하여 안드로이드를 실행하는 개념이라고 생각하면 될 것 같다. 이전에는 Android Studio 에서 arm64 칩에 대한 지원을 안했던 것으로 보이는데 이제는 지원하고 있어서 그냥 VDM 에서 실행해도 상관은 없을 것 같다. 하지만 에뮬레이터로 설치하면 안드로이드 스튜디오는 독립적이기 때문에 개발자가 아닌 이상 그냥 에뮬레이터만 사용해도 되기 때문에 아래 방식으로 하는게 더 나은 것 같다는 생각이다. Android Emulator 를 설치한다. 아래 주소에서..
2023.10.13 -
다양한 상황에 대응하기 위해 여러가지 복잡한 구조가 필요한 상황이 있을 수 있다. 예를 들어 젠킨스에서 빌드하고 Tag 값을 CodeBuild 에 전달하기 위한 상황에서 AWS 에 권한이 없다거나 하는 경우가 있다. 이러한 상황을 해결하기 위해 Jenkins 에서 CodeBuild 를 호출하는 방법을 정리했다. 또한 원하는 변수 값을 같이 전달한다. Jenkins 에서 AWS CodeBuild 를 호출하기 위해선 Access Key 와 Secret Key 가 필요하다. AWS 계정을 식별할 수 있어야 해당 계정 안에 있는 CodeBuild 를 접근할 수 있기 때문이다. 또한 외부에서 아무나 접근이 가능하면 비용적인 문제가 있을 수 있기 때문에 해당 key는 엄격히 관리 되어야 한다. https://do..
AWS CodeBuild Plugin 사용하여 AWS 연동하기다양한 상황에 대응하기 위해 여러가지 복잡한 구조가 필요한 상황이 있을 수 있다. 예를 들어 젠킨스에서 빌드하고 Tag 값을 CodeBuild 에 전달하기 위한 상황에서 AWS 에 권한이 없다거나 하는 경우가 있다. 이러한 상황을 해결하기 위해 Jenkins 에서 CodeBuild 를 호출하는 방법을 정리했다. 또한 원하는 변수 값을 같이 전달한다. Jenkins 에서 AWS CodeBuild 를 호출하기 위해선 Access Key 와 Secret Key 가 필요하다. AWS 계정을 식별할 수 있어야 해당 계정 안에 있는 CodeBuild 를 접근할 수 있기 때문이다. 또한 외부에서 아무나 접근이 가능하면 비용적인 문제가 있을 수 있기 때문에 해당 key는 엄격히 관리 되어야 한다. https://do..
2023.10.12 -
Jenkins Pipeline 으로 CI/CD 를 구축할 때 가장 기본적으로 repository 에서 git 을 clone 하여 build 하는 과정은 반드시 존재한다. 이 과정이 CI (Continuous Integration) 으로 지속적인 통합이라고 할 수 있다. 즉 개발자는 소스코드 개발에만 집중하며 변경사항이 공유 레파지토리에 지속적으로 통합하는 것을 의미한다. 공유 레파지토리에 수정사항이 발생하면 파이프라인은 자동으로 빌드 후 배포까지 수행할 수 있어 개발자는 온전히 소스 코드만 개발할 수 있다는 장점이 있다. 1. Git Clone 그럼 먼저 공유 레파지토리에서 소스를 가져오는 stage 가 필요하다. 공유 저장소가 PUBLIC 권한이라면 상관없겠지만 대부분은 PRIVATE 저장소로 구성되어..
Jenkins Pipeline 으로 git clone , build 수행하기Jenkins Pipeline 으로 CI/CD 를 구축할 때 가장 기본적으로 repository 에서 git 을 clone 하여 build 하는 과정은 반드시 존재한다. 이 과정이 CI (Continuous Integration) 으로 지속적인 통합이라고 할 수 있다. 즉 개발자는 소스코드 개발에만 집중하며 변경사항이 공유 레파지토리에 지속적으로 통합하는 것을 의미한다. 공유 레파지토리에 수정사항이 발생하면 파이프라인은 자동으로 빌드 후 배포까지 수행할 수 있어 개발자는 온전히 소스 코드만 개발할 수 있다는 장점이 있다. 1. Git Clone 그럼 먼저 공유 레파지토리에서 소스를 가져오는 stage 가 필요하다. 공유 저장소가 PUBLIC 권한이라면 상관없겠지만 대부분은 PRIVATE 저장소로 구성되어..
2023.10.11 -
bitbucket 이전 버전에서는 AWS CodeCommit 과의 Mirroring 을 Plugin 을 통해서 지원했었다. 기존에는 v6.3.4 를 사용했었고 repo 설정 > 갈고리 > Mirror Hook 으로 설정이 가능했다. 해당 설정에서 mirroring 할 URL, Credential 을 이용하면 bitbucket 과 AWS 의 CodeCommit 미러링이 손쉽게 가능했다. https://marketplace.atlassian.com/apps/1211351/repository-mirror-plugin-for-bitbucket/version-history Repository Mirror Plugin for Bitbucket - Version history Browse the top apps, a..
Bitbucket 과 AWS CodeCommit Jenkins를 이용한 Mirroringbitbucket 이전 버전에서는 AWS CodeCommit 과의 Mirroring 을 Plugin 을 통해서 지원했었다. 기존에는 v6.3.4 를 사용했었고 repo 설정 > 갈고리 > Mirror Hook 으로 설정이 가능했다. 해당 설정에서 mirroring 할 URL, Credential 을 이용하면 bitbucket 과 AWS 의 CodeCommit 미러링이 손쉽게 가능했다. https://marketplace.atlassian.com/apps/1211351/repository-mirror-plugin-for-bitbucket/version-history Repository Mirror Plugin for Bitbucket - Version history Browse the top apps, a..
2023.10.10 -
jenkins Version : 2.419 Ansible Tower : 17.1.0 (Docker Version) Jenkins Plugin Ansible Tower Plugin https://plugins.jenkins.io/ansible-tower/dependencies/ CI / CD 파이프라인을 구성하는데 필요한 jenkins 와 Ansible 을 연동하는 과정이다. 보통 jenkins 에서 빌드 및 아티팩트 전달까지 진행한 후 Ansible 을 호출하면서 정보를 넘겨주게 되는데, 이 과정에서 jenkins - Ansible Tower (이하 AWX) 가 연동되어 있어야 한다. Ansible Tower 는 host , group value 를 가지고 있기 때문에 ansible 을 호출하면 원하는 ..
Jenkins 와 Ansible Tower (AWX) 연동, API 사용jenkins Version : 2.419 Ansible Tower : 17.1.0 (Docker Version) Jenkins Plugin Ansible Tower Plugin https://plugins.jenkins.io/ansible-tower/dependencies/ CI / CD 파이프라인을 구성하는데 필요한 jenkins 와 Ansible 을 연동하는 과정이다. 보통 jenkins 에서 빌드 및 아티팩트 전달까지 진행한 후 Ansible 을 호출하면서 정보를 넘겨주게 되는데, 이 과정에서 jenkins - Ansible Tower (이하 AWX) 가 연동되어 있어야 한다. Ansible Tower 는 host , group value 를 가지고 있기 때문에 ansible 을 호출하면 원하는 ..
2023.10.10 -
1. SSH 란? SSH는 Secure Shell의 약자, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 입니다. 기존 원격 접속은 텔넷(Telnet)이라는 방식을 사용했는데, 암호화를 제공하지 않기 때문에 보안상 취약하다는 단점이 존재하여, 암호화하는 SSH 기술이 등장했습니다. 현 시점에서 SSH는 원격 접속을 위한 필수적인 프로토콜로 사용되고 있습니다. Jenkins 나 ansible 그리고 클라우드 서비스에서 제공하는 서버 등은 모두 원격 접속으로 접근하여 사용하기 때문에, 서버 생성시 필수적으로 SSH 보안 과정을 거쳐야 합니다. 2. SSH 의 작동 원리 KEY를 가지고 보안을 구성하는 방식입니다. 사용자와 서버는 각각의 키를 보유하고 있습니다. 이 키를 이용하여 연결 상대를 인증하고 인..
SSH , 리눅스 서버 비밀번호 없이 접속하기1. SSH 란? SSH는 Secure Shell의 약자, 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 입니다. 기존 원격 접속은 텔넷(Telnet)이라는 방식을 사용했는데, 암호화를 제공하지 않기 때문에 보안상 취약하다는 단점이 존재하여, 암호화하는 SSH 기술이 등장했습니다. 현 시점에서 SSH는 원격 접속을 위한 필수적인 프로토콜로 사용되고 있습니다. Jenkins 나 ansible 그리고 클라우드 서비스에서 제공하는 서버 등은 모두 원격 접속으로 접근하여 사용하기 때문에, 서버 생성시 필수적으로 SSH 보안 과정을 거쳐야 합니다. 2. SSH 의 작동 원리 KEY를 가지고 보안을 구성하는 방식입니다. 사용자와 서버는 각각의 키를 보유하고 있습니다. 이 키를 이용하여 연결 상대를 인증하고 인..
2022.12.29 -
기존 JENKINS 가 어떠한 이유로 먹통이 되거나, 이전 시점으로 돌아가고 싶은 경우가 생길 수 있다. 만약 BACKUPSET 을 가지고 있다면, 해당 BACKUP본을 가지고 복구하는 방법에 대해 정리하려고 한다. 1. 기존 파일 삭제 복구하기 전에 해당 장비에 남아있는 기존의 젠킨스 관련 파일을 모두 삭제해주자. default 값으로 별도의 수정을 하지 않았다면, 아래 포스팅의 내용을 통해 정리할 수 있다. https://jjoyling.tistory.com/115 Jenkins 완전 삭제 방법 1. Jenkins 종료 systemctl stop jenkins.service 2. apt package 관리자로 삭제 apt remove jenkins 3. 관련 디렉토리 삭제 rm -rf /var/lib..
BACKUPSET 을 이용한 JENKINS 복구 방법기존 JENKINS 가 어떠한 이유로 먹통이 되거나, 이전 시점으로 돌아가고 싶은 경우가 생길 수 있다. 만약 BACKUPSET 을 가지고 있다면, 해당 BACKUP본을 가지고 복구하는 방법에 대해 정리하려고 한다. 1. 기존 파일 삭제 복구하기 전에 해당 장비에 남아있는 기존의 젠킨스 관련 파일을 모두 삭제해주자. default 값으로 별도의 수정을 하지 않았다면, 아래 포스팅의 내용을 통해 정리할 수 있다. https://jjoyling.tistory.com/115 Jenkins 완전 삭제 방법 1. Jenkins 종료 systemctl stop jenkins.service 2. apt package 관리자로 삭제 apt remove jenkins 3. 관련 디렉토리 삭제 rm -rf /var/lib..
2022.12.26 -
MAC 업데이트를 하면 xcode 관련 에러가 생기면 개발툴이 정상 실행되지 않는다. (git, gcc, make ...) 아래 명령어로 해결하면 된다. xcode-select --install
MAC 업데이트 후 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools) 에러 발생MAC 업데이트를 하면 xcode 관련 에러가 생기면 개발툴이 정상 실행되지 않는다. (git, gcc, make ...) 아래 명령어로 해결하면 된다. xcode-select --install
2022.10.29