Selenium을 CentOS 상에서 별도의 GUI없이 사용할수 있도록 구성하고 이를 Jenkins Slave node로 등록하여 pipeline을 구동하는 방법에 대하여 알아보자. CentOS7 에서 GUI 없이 selenium 구동 chrome webdriver와 python을 이용해 selenium UI test를 구현한것이며 아래내용은 jenkins slave node에 수행해 주어야 job 수행이 이슈가 없다. 아래 링크에서 chromedriver를 다운로드 받아 특정 path에 복사해둔다. (특정 Path는 향후 python code에서 사용되기때문에 인지가능하고 쉬운 Path로 하는것을 추천한다.) https://sites.google.com/a/chromium.org/chromedriver..
목적 ansible playbook을 특정 시점부터 실행하면 어떨까 하는 생각이 들었다. 실제 신규 playbook을 사용하는 경우 중간에 에러가 발생되어 처음부터 다시 시작시키는 경우가 있었고 이러한 상황마다 다시시작하게 되어 시간낭비가 있다고 생각이 들어 중간부터(필요한 task부터) 시작하는 방법이 없는지 찾게 되었다. 조사를 해보니 아래와 같은 몇가지 방식이 있다. 개인적인 의견으로는 playbook과 같은 다수의 task가 include되거나 role로 사용되고 있는 경우 tags 이외에는 별다른 방법이 없어보인다. 각 항목은 예시와 함께 설명을 할 예정이다. 관련 설명은 다음과 같은 playbook을 기반으로 진행할 예정이다. jacob@jacob-laptop:~/workspaces/ansib..
Kubernetes 환경에서 Jenkins helm chart로 Jenkins를 사용하니 ssh를 통한 node 등록이 default로 활성화 되어 있지 않았다. 하여 plugin 설치와 함께 ssh를 통한 node(slave) 등록 방법에 대하여 알아보도록 하겠다. plugin 설치 아래 plugin이 설치되어 있어야 한다. https://plugins.jenkins.io/ssh-slaves/ node(slave) 추가 위 plugin 설치가 완료되면 new node항목을 클릭하여 node를 추가한다. 이름을 추가하고 지속적으로 사용할 예정이기에 Permanent Agent 를 선택하고 name을 추가하여 생성을 진행한다. 아래와 같이 Launch agents via SSH 라는 메뉴가 활성화 되어 있..
Github plugin Jenkins pipeline job의 경우 기본 github plugin으로는 job 실행이 되지 않는다. https://plugins.jenkins.io/github/ 물론 우회할수 있는 방법이 있긴하다. 우회방법은 아래와 같다. freestyle job을 생성 (해당 job은 build other projects를 post-build actions으로 지정)하고 아래 trigger 설정을 추가한다. projects to build에 지정된 job에 pipeline 선언 (사전에 pipeline Job은 생성되어 있다는 가정) 이후 github에 설정을 추가한다. 요약하자면 두개의 job을 생성한다. 하나는 freestyle job, 나머지는 pipeline job으로 생성하..
workspace workspace의 경우 기본적으로 아래 경로에 저장되게 된다. /var/jenkins_home/jobs/github-freestyle-webhook/builds/2/archive 실제 Jenkins workspace에서 파일 경로를 확인해보면 다음과 같은 경로를 가진다. https://jenkins.example.com/job/job-name/lastSuccessfulBuild/artifact/README.md 실제 jenkins 경로에서 확인해보면 정확히 매칭되는 경로를 찾을수는 없고 builds 내에 permalinks라는 파일이 존재하고 해당 파일내에 마지막 성공한 빌드 정보가 기록되어 있고 해당 number에 맞는 경로를 찾아가게 된다. jenkins@jenkins-cdf944..
아래와 같은 경로로 이동하여 log recorder를 생성하자. 다음과 같은 log record가 생성되어 확인이 가능하다. 실제 당시 문제는 위 이미지 상에 나와있듯이 "Skipped github-integration-test because it doesn't have a matching repository" 메세지를 통해 확인이 가능했다. 예시 github plugin을 예를 들어 사용해보자. 먼저 github plugin이 소개된 페이지에서 보면 다음과 같이 logging에 대한 class name을 제공하고 있다. 위에 확인된 class name을 아래 설정에 추가해놓자. 이후 log records에 생성한 github log 에서 확인해보면 위와 같은 log가 github webhook이 발생될..
Terraform를 사용하게 되면 원격 state 사용이 필요하다. 일반적으로 AWS s3를 사용하지만 public에 올리는것이 아무래도 조심스러울수 있고 이러한 경우 내부 s3 호환이 가능한 minio 서버를 내부에 구성하여 이러한 우려를 종식시킬수 있다. 그러면 minio를 통해 terraform state file을 관리하는 방법에 대하여 알아보자. minio 설치 minio의 경우 kubernetes 환경에서 helm chart를 통해 간단히 배포를 하였다. helm install stable/minio -n minio 참고로 minio access_key와 secret_key는 "testkey" 라고 가정하였다. minio를 terraform backend로 사용하기 이제 minio를 terra..
초기사용설정 repo 추가 helm 사용을 위해 아래 repo를 추가한다. helm repo add stable https://kubernetes-charts.storage.googleapis.com/chart 일반적으로 stable(google에서 제공하는 repo)를 많이 사용한다 incubator의 경우 다른 repo를 추가해야한다. $ helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/ 관련 내용은 다음 링크에 상세히 나와 있다. https://github.com/helm/charts https://helm.sh/docs/intro/using_helm/ repo 추가가 완료되면 다음과 같이 설치를 진..
- Total
- Today
- Yesterday
- boundary ssh
- GateKeeper
- azure policy
- openstack backup
- openstacksdk
- Helm Chart
- kata container
- minikube
- open policy agent
- Terraform
- kubernetes
- crashloopbackoff
- DevSecOps
- nginx-ingress
- wsl2
- vmware openstack
- aquasecurity
- macvlan
- socket
- metallb
- OpenStack
- jenkins
- K3S
- ansible
- Jenkinsfile
- kubernetes install
- hashicorp boundary
- ceph
- minio
- mattermost
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |