묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Jenkins 파일 - 파라미터 사용법 차이
안녕하세요섹션 18 - 82번 강의 : 배포 파이프라인 구축 후 마주하게 되는 고민들(실습)수강 중 Jenkins 파일에 대한 질문이 있어 문의 드립니다. Jenkins 파일을 작성할 때, parameter로 PROFILE(배포환경선택)과 DOCKERHUB_USERNAME(도커허브유저명)을 설정하셨는데 하기 코드를 보시면 parameters { // 배포 환경 선택 choice(choices: ['dev', 'qa', 'prod'], name: 'PROFILE', description: '배포 환경 선택') // DockerHub 사용자명 입력 string(name: 'DOCKERHUB_USERNAME', defaultValue: '', description: 'DockerHub 사용자명을 입력하세요.') // GitHub 사용자명 입력 string(name: 'GITHUB_USERNAME', defaultValue: '', description: 'GitHub 사용자명을 입력하세요.') } stage('헬름 배포') { steps { // helm 명령 사용 - [1] 중요 데이터 암호화 관리 withCredentials([file(credentialsId: 'k8s_master_config', variable: 'KUBECONFIG')]) { sh "helm upgrade api-tester-${CLASS_NUM} ./${CLASS_NUM}/deploy/helm/api-tester -f ./${CLASS_NUM}/deploy/helm/api-tester/values-${params.PROFILE}.yaml" + " -n anotherclass-222-${params.PROFILE} --install --kubeconfig " + '${KUBECONFIG}' + // [5] Helm 부가기능 " --wait --timeout=10m" + // 최대 10분으로 설정 // [2] 잦은 배포 - versioning 무의미, 계획된 배포 - versioning 필수 " --set image.tag=${TAG}" + " --set image.repository=${DOCKERHUB_USERNAME}/api-tester" } } } PROFILE은 앞에 "params"가 붙어있고 (${params.PROFILE}),DOCKERHUB_USERNAME은 환경변수처럼 그냥 ${DOCKERHUB_USERNAME}로 사용하신 것을 볼 수 있습니다. 혹시 choice문을 사용하여 사용자가 선택하는 prarmeter의 경우 params를 붙인다던가 하는 규칙이 있는 걸까요? 위 두 개 사용 방법이 다른 것에 원인이 있는지 궁금합니다.
-
미해결DevSecOps Basic (/w SAST)
Master -> Agent 노드로 SSH 접근을 못하네요
강사님께서 알려주신 공개키/개인키 생성 방법 그대로 따라했음에도 불구하고.$ ssh -i /var/jenkins_home/.ssh/id_rsa jenkins@172.17.0.4 jenkins@172.17.0.4: Permission denied (publickey).이처럼 Agent 노드로 SSH 접근이 실패합니다.Agent 노드의 퍼미션 설정은 하기와 같습니다.chown -R jenkins:jenkins /home/jenkins/.ssh chmod 700 /home/jenkins/.ssh chmod 600 /home/jenkins/.ssh/authorized_keys또한 Agent 노드의 sshd config 설정 또한 하기와 같이 진행하였습니다.sudo nano /etc/ssh/sshd_config PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys sudo systemctl restart ssh더 이상은 무엇이 문제인지 모르겠습니다."authorized_keys" 파일내 공백/누락/오타 등은 일절 없습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
exec /usr/local/tomcat/bin/catalina.sh: invalid argument 오류 해별법(공유)
저도 m1 mac 인데 제공해주신 이미지로 계속해서 exec /usr/local/tomcat/bin/catalina.sh: invalid argument해당 오류가 발생해서 직접 이미지(ubuntu:22.04 기반)를 만들어서 해결했습니다. 저랑 같으신분은 참고하시길 바랍니다.이미지는 제 허브에 올려놔서 아래 명령어로 실행시키시고 강의내용 따라가면 저 같은 경우에는 해결되었습니다.(허브 링크)강의 내용이랑 다른 점은 ssh 접속 비밀번호가 다르고 루트 디렉토리에 기본 Dockerfile이 없습니다. (직접 만드시면 됩니다)ssh 접속 root 패스워드 : rootpasswordjenkins ssh 비밀번호 설정도 변경하셔야합니다.(mac m1만 해당 m2,m3... 는 모르겠습니다.)docker run --privileged --name ssh-docker-server -itd \ -p 10022:22 \ -p 8081:8080 \ -e container=docker \ -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ --cgroupns=host \ chaewonjeong/ssh-docker-server:latest \ /usr/sbin/init
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
m2 mac: ansible-server에서 container 실행 안됨
[root@ab1033644112 ~]# docker logs 239c5ab92b48 exec /usr/local/bin/dockerd-entrypoint.sh: invalid argument가장 최근 질문에 올라와있는 방식대로 해도 안됨.그냥 영상만 보고 넘어가려 했는데 다음 강의에서 hub에 push해서 사용해보는 실습이 있네요?애초에 여기서 안되는데.. 강사님이 올려두신 파일 그대로 사용한겁니다.- hosts: all # become: true tasks: - name: stop current running container command: docker stop my_cicd_project ignore_errors: yes - name: remove stopped cotainer command: docker rm my_cicd_project ignore_errors: yes - name: remove current docker image command: docker rmi cicd-project-ansible ignore_errors: yes - name: build a docker image with deployed war file command: docker build -t cicd-project-ansible -f Dockerfile . - name: create a container using cicd-project-ansible image command: docker run -d --name my_cicd_project -p 8080:8080 cicd-project-ansible
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Jenkins와 k8s 연동과 관련한 질문입니다.
Docker jenkins 에서 윈도우로 ssh 접속을 하면 root 패스워드를 계속 물어보는데 windows 의 root 패스워드는 어떻게 설정하는 건지요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Ansible 과 연동에서 이미지 및 컨테이너 생성과 관련한 질문 드립니다.
yml 을 anisble 서버에서 작성하였습니다아울러 hello-world.war 도 ansible 서버에 생성되었습니다.하지만, yml 에는 Dockerfile 등의 정보가 지정되어 있지 않습니다.그렇다면 Dockerfile 은 어디서 가져오는지 궁금합니다.좋은 강의 감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
맥북 실리콘칩 invalid argument 에러 해결 (수동 설치)
안녕하세요 에러 해결 방식 공유할려고 올립니다저는 맥북 m3 max 사용 중이고 저랑 비슷한 환경에컨테이너만 실행시키면 계속해서 exec invalid argument 에러 증상이 자꾸 나서 애를 먹었습니다 해결방안은 docker-dind-arm64 공식 이미지를 받아서docker run --privileged -itd -p 20023:22 -p 8083:8080 --name dind-arm64 \ docker@sha256:223d046021f324792db4fbd1396746b63ffb93f00861ea390d7fbbaf392585e4컨테이너 접속 후 ssh, python 수동설치하고 앤서블 서버에서 키 복사하고요플레이북으로 여기에 컨테이너 실행하니 잘 작동합니다 이상임. 도커허브 이미지 링크https://hub.docker.com/layers/library/docker/dind/images/sha256-223d046021f324792db4fbd1396746b63ffb93f00861ea390d7fbbaf392585e4
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker Container에서 Tomcat 설치
영상에 Tomcat 설치 단계가 없는 것으로 보이는데Deploy Plugin 설치 시 자동으로 설치되는 건가요?
-
해결됨바로쓰는 CI/CD on EKS
초기 one click 설치 자체가 실패하는데 확인부탁드립니다.
bootstrap.sh 실행을 초기 어떤 환경에서 실행해야하는지,우분투 리눅스에 git clone으로 가져온후에 resources 강의대로 제 환경에 맞게 셋팅하고 실행하면, 스크립트가 돌다가 Error: No such container: 8e600169273c마지막 메시지와 함께 스크립트가 돌다가 멈추네요. bootstarp.sh 실행자체가 오류나서 진행자체를 못하고 있네요. ㅠ 제 설치환경은 awscli 는 다음과 같은데 현재 버전에서는 스크립트 확인이 필요한가요? ubuntu@ip-10-0-3-67:~$ aws --versionaws-cli/2.25.6 Python/3.12.9 Linux/5.4.0-1103-aws exe/x86_64.ubuntu.18 │ Error: creating S3 Bucket (terraform-state-topzone-k8s-101) Versioning: operation error S3: PutBucketVersioning, https response error StatusCode: 403, RequestID: 3A5J0S85N7CX9S8X, HostID: J2iQIm1Vk9/f9+J6EqJyLC9YsJLBm0C2jXtnMI9cqkVKeVlZBfJ2ym9Xjg7dDFLzq2zNXo7f1q1ckJOoiRAyN7MhHDAZgHKXDF4ZLY/u2tY=, api error AccessDenied: Access Denied││ with aws_s3_bucket_versioning.tfstate,│ on versions.tf line 23, in resource "aws_s3_bucket_versioning" "tfstate":│ 23: resource "aws_s3_bucket_versioning" "tfstate" {│╵docker exec -it 8e600169273c bash /topzone/tz-local/docker/init2.shError: No such container: 8e600169273c root@ip-10-0-3-67:~/tz-eks-main# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES7986d83cf4d2 tz-main "/bin/sh -c '/bin/ba…" 58 seconds ago Up 57 seconds 22/tcp docker-devops-utils
-
해결됨바로쓰는 CI/CD on EKS
windows 환경에서 초기 설정 sh 실행
저는 windows 10 환경에서 실습 진행하려는데,초기에 각 repo clone 하는것을 로컬 pc에 해오는게 맞나요?reousrces 설정한 이후에 제 로컬 windows 에서 bootstrap.sh 실행하는게 맞나요? sh자체가 실행할수가 없어서, gitbash 로 실행해봐도 오류가 나네요.windows 기준으로 초기 설정 sh bootstrap.sh 실행을 안내해주시면 감사하겠습니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ec2 여러대에서 각각 직접 설치 이유
ec2 여러대에서 각각 jenkins, ansible 등등을 host 에 직접 설치하는 특별한 이유가 있을까요?ec2 각각 안에서도 그냥 docker 로 띄워도 되지 않나요? 특별한 이유가 있는지, 어떤 수업의 방향성 때문인지, 장단 등등에 대해서 궁금합니다. 좋은 강의 감사합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
P@ssw0rd 설정시기
안녕하세요 좋은 강의 감사합니다. docker run --privileged --name jenkins-node1 -itd -p 30022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init로 접속한 후에요. docker ps -a | grep jenkins-node 잘 떠있는 것 확인한 후에 ssh root@localhost -p 3022 로 접근하면 P@ssw0rd 패스워드 입력하잖아요? 그 패스워드는 강의 선생님께서 해당 도커 이미지 생성하실 때 root / P@ssw0rd 로 설정을 하신 건가요? 미리 감사드립니다.
-
해결됨바로쓰는 CI/CD on K8S
명령어 파일이 있으면 좋을 것 같아요.
강의를 구매해서 수강하며 테스트하고 있는데, 명령어들을 실행하는 파일들이 있으면 좋을 것 같아요. 화면에 있는 명령어들을 보고 치지만, 오타가 있을 경우도 있어서요.
-
미해결애플리케이션 배포 자동화와 CI/CD
안녕하세요
안녕하세요 선생님젠킨스 도커로 설치후 실행하면 이런 로딩에서 안넘어가는데 어떻게 하면 좋을까요..? 로컬에서 했을때는 비밀번호 치는걸로 바로 넘어가는데..감사합니다!
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 원리
ansible copy 같은 모듈 명령어를 사용할 때요대상으로 하는 서버들에서 방화벽과 같은 그런것들을 미리 열어줘야 하고 그런 것들은 없을까요?물론 미리 ping 을 통해서 확인할 수는 있겠지만요!ansible 의 동작 원리가 궁금합니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 존재여부
안녕하세요docker run --privileged -itd --name ansible-server -p 20022:22 -p 8082:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/ansible-server:m1 /usr/sbin/init위 명령어로 도커 이미지 설치 후 ssh 로 접속해서 패스워드 치고 들어가면, ansible --version 이 먹히지 않는 것으로 보면 ansible 이 설치가 되어있지 않은 것 같아요.참고로 저는 맥 m1 OS 입니다.
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
젠킨스 빌드 성공후 shutdown
안녕하세요 우선 저는 gradle 로 진행을 했습니다.다른건 다 동일하게 했고젠킨스 도커 안에 들어가서 cd /var/jenkins_home/workspace/My-Third-Proejct nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 &로 실행을 하면 브라우저에서 localhost:9000 으로 접근이 잘 됩니다.그런데 젠킨스 스크립트로 실행을 하게 되면 젠킨스 도커 내의 로그를 확인해보면 계속 꺼져요. 이유가 있을까요?젠킨스 구성 설정의 shell script 는 아래와 같아요.# 기존 프로세스 종료 PID=$(ps -ef | grep "jenkins_cicd_project-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}') if [ ! -z "$PID" ]; then echo "종료 중인 애플리케이션 PID: $PID" kill -15 $PID sleep 5 fi # 새 프로세스 시작 (setsid 사용하여 별도 세션에서 실행) echo "애플리케이션 시작 중..." setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 > app.log 2>&1 & APP_PID=$! echo "애플리케이션 PID: $APP_PID" # 시작 확인 sleep 10 ps -p $APP_PID > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션이 PID $APP_PID로 실행 중입니다." curl -s http://localhost:9000 > /dev/null if [ $? -eq 0 ]; then echo "애플리케이션에 정상적으로 접근할 수 있습니다." else echo "애플리케이션 접근 테스트 실패!" fi else echo "애플리케이션 시작 실패!" exit 1 fi그리고 젠킨스 빌드 console out 도 아래와 같습니다.Started by user 허강준 Running as SYSTEM Building in workspace /var/jenkins_home/workspace/My-Third-Proejct The recommended git tool is: NONE No credentials specified > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/My-Third-Proejct/.git # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url https://github.com/Highjune/jenkins_cicde_project.git # timeout=10 Fetching upstream changes from https://github.com/Highjune/jenkins_cicde_project.git > git --version # timeout=10 > git --version # 'git version 2.39.5' > git fetch --tags --force --progress -- https://github.com/Highjune/jenkins_cicde_project.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10 Checking out Revision 6353899ff277302005bce6da4d498211ebeab06b (refs/remotes/origin/main) > git config core.sparsecheckout # timeout=10 > git checkout -f 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 Commit message: "포트번호 수정" > git rev-list --no-walk 6353899ff277302005bce6da4d498211ebeab06b # timeout=10 [My-Third-Proejct] $ /bin/sh -xe /tmp/jenkins9188074144619929309.sh + ps -ef + grep jenkins_cicd_project-0.0.1-SNAPSHOT.jar + grep -v grep + awk {print $2} + PID=283 + [ ! -z 283 ] + echo 종료 중인 애플리케이션 PID: 283 종료 중인 애플리케이션 PID: 283 + kill -15 283 + sleep 5 + echo 애플리케이션 시작 중... 애플리케이션 시작 중... + APP_PID=420 + echo 애플리케이션 PID: 420 애플리케이션 PID: 420 + sleep 10 + setsid nohup java -jar build/libs/jenkins_cicd_project-0.0.1-SNAPSHOT.jar --server.port=9000 --server.address=0.0.0.0 + ps -p 420 + [ 0 -eq 0 ] + echo 애플리케이션이 PID 420로 실행 중입니다. 애플리케이션이 PID 420로 실행 중입니다. + curl -s http://localhost:9000 + [ 0 -eq 0 ] + echo 애플리케이션에 정상적으로 접근할 수 있습니다. 애플리케이션에 정상적으로 접근할 수 있습니다. Finished: SUCCESS그런데 계속 Graceful shutdown complete 가 뜹니다.참고로 다른 포트랑 충돌같은 것은 없습니다 원래 8081로 진행하다가 일부러 다른 포트로 시도해보려고 9000으로 했습니다.이렇게 젠킨스 내 컨테이너 내에서 수동 실행하면 되는데 왜 젠킨스 빌드로 하면 꺼지는 걸까요?참고로 젠킨스 도커 실행 명령어는 아래와 같습니다.docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 9000:9000 -p 50000:50000 --restart=on-failure --name jenkins-server jenkins/jenkins:lts-jdk21
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Docker Hub에 Push 무한 로딩
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. Ansible을 이용한 Docker 이미지 관리 강의에서 create-cicd-devops-image.yml에 작성한 스크립트로 playbook 실행 시 Docker Hub에 Push하는 과정에서 무한로딩이 걸리는데 원인을 찾을 수 없어서 질문드립니다..Docker Hub 로그인도 성공하였고 스크립트에 저의 계정 이름/cicd-project-ansible로도 잘 작성하였고 수동으로 push 명령어를 내려주면 Docker Hub에 이미지가 잘 띄어지긴 합니다.수동으로 명령어를 내려주면 잘 작동하지만 왜 playbook으로는 push과정에서 무한로딩이 걸리는지 모르겠습니다[root@0c03fe2051d5 ~]# ansible-playbook -i hosts create-cicd-devops-image.yml --limit 172.17.0.4PLAY [all] *************************************************************************************************************TASK [Gathering Facts] *************************************************************************************************ok: [172.17.0.4]TASK [Login to Docker Hub] *********************************************************************************************changed: [172.17.0.4]TASK [create a docker image with deployed waf file] ********************************************************************changed: [172.17.0.4]TASK [push the image on Docker Hub] ************************************************************************************.... 무한로딩
-
해결됨Jenkins를 이용한 CI/CD Pipeline 구축
컨테이너에 ssh로 접속 비밀번호 불일치
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.PS C:\Users\user> docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6b7834a16e0a edowon0623/docker:latest "/sbin/init systemct…" 56 minutes ago Up 56 minutes 0.0.0.0:10022->22/tcp, 0.0.0.0:8081->8080/tcp docker-serverf762097105dd jenkins/jenkins:lts-jdk17 "/usr/bin/tini -- /u…" 2 days ago Up 3 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jekins-server docker 컨테이너 상태는 Up상태입니다. ssh root@localhost -p 10022 명령어 입력후 비밀번호는 강좌 밑에 있는 비밀번호를 입력하였는데도 계속 denied를 당하고 있습니다. 해결 방법이 있을까요? (현재 사용중인 OS는 window 11 )
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
maven project 오류
maven 설치한거 같은데 maven이 설치에 문제가 있는걸까요 왜 빌드 했을때 아무것도 작동하지 않는지 알고싶습니다