In today's increasingly complex IT environments, enhancing efficiency is essential for IT operations teams. Today, we'll explore Rundeck, a powerful tool designed to meet these needs.What is Rundeck?Rundeck is an open-source tool that allows IT operations teams to automate, schedule, and manage various tasks. By using Rundeck, you can reduce repetitive work, minimize errors, and maximize operati..
IT 운영 팀이 점점 더 복잡해지고 있는 현대의 IT 환경에서 효율성을 높이는 것은 필수적입니다. 오늘은 이러한 요구를 충족시켜줄 수 있는 강력한 도구, Rundeck에 대해 알아보겠습니다.Rundeck이란?Rundeck은 IT 운영 작업을 자동화하고, 스케줄링하며, 관리할 수 있도록 설계된 오픈 소스 도구입니다. 이를 통해 반복적인 작업을 줄이고, 오류를 최소화하며, 운영 효율성을 극대화할 수 있습니다.주요 특징1. 자동화 및 스케줄링Rundeck은 다양한 작업을 자동화하고 정기적으로 실행할 수 있는 스케줄링 기능을 제공합니다. 복잡한 워크플로우를 정의하고 관리할 수 있어, 여러 단계로 이루어진 작업도 간편하게 처리할 수 있습니다.2. 다양한 통합Rundeck은 Ansible, Chef, Puppet,..
Backstage(https://backstage.io/)는 Spotify가 개발한 오픈 소스 플랫폼으로, 개발자들이 소프트웨어를 보다 효과적으로 관리하고 개발할 수 있도록 설계된 도구 모음입니다. 이 플랫폼은 기업이나 개발 팀이 사용하는 모든 소프트웨어 및 서비스를 중앙에서 관리할 수 있는 개발자 포털 역할을 합니다.주요 특징 및 기능서비스 카탈로그: Backstage는 회사 내의 모든 소프트웨어 자산(예: 서비스, 데이터 파이프라인, 라이브러리 등)을 한 눈에 볼 수 있는 중앙 집중식 카탈로그를 제공합니다. 이를 통해 자산 관리가 용이해지고, 필요한 정보를 빠르게 찾을 수 있습니다.플러그인 시스템: 확장 가능한 플러그인 아키텍처를 통해, 사용자는 필요에 맞게 다양한 기능을 추가할 수 있습니다. 이 시..
Pyenv 로 버전관리를 할 수 있는데 이 Pyenv 의 버전이 낮을 경우 최신 Python 버전을 설치할 수가 없음 따라서, Pyenv를 항상 최신 버전으로 유지하는게 중요 How to update Ref. https://github.com/pyenv/pyenv#upgrading GitHub - pyenv/pyenv: Simple Python version management Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub. github.com 위 Repository 를 Clone 그 후에 주기적으로 Git pull
JobConfigHistory Plugin is a plugin designed to maintain the history of what has changed in the Jenkins job configuration and the system configuration. When a save operation is performed in Jenkins, then the history of what was changed (diff) and who made the changes (user) is saved. It could be a manual save from the UI or a programmatic save. Recommended configuration There are many customizat..
Manage Jenkins > Script Console import com.cloudbees.hudson.plugins.folder.Folder import com.cloudbees.hudson.plugins.folder.AbstractFolder Jenkins.instance.getAllItems(AbstractFolder.class).each { folder -> if (isEmpty(folder)) { println folder.fullName + " - " + folder.class } }; return def isEmpty(folder) { return folder?.items?.size() == 0 } https://docs.cloudbees.com/docs/cloudbees-ci-kb/la..
Dockerfile FROM centos:centos7 # Your vagrant public key ENV PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPK..
Dockerfile FROM centos:centos7 # Your vagrant public key ENV PUB_KEY="ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPK..
e.g. -> % ssh vagrant@127.0.0.1 -p 3333 vagrant@127.0.0.1's password: "System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)." Connection closed by 127.0.0.1 port 3333 Remove a file '/run/nologin' 1. Connect to terminal of VM 2. rm /run/nologin
rbenv 를 이용하여 ruby 버전 관리를 할 수 있습니다. rbenv install --list-all 를 실행하면 install할 수 있는 버전 리스트를 확인할 수 있습니다. 그러나, 3.1.x 이상 버전은 안 보이는 경우가 있습니다. 이럴 때는 .rbenv/plugins/ruby-build 버전을 업그레이드해 줘야 합니다. .rbenv 의 경로는 사용자마다 다를 수 있습니다. 업그레이드는 https://github.com/rbenv/ruby-build 여기를 참고하면 자세히 나와 있습니다. git clone -> git pull Clone as rbenv plugin using git git clone https://github.com/rbenv/ruby-build.git "$(rbenv root..
Resolution In current versions of Jenkins (since 2.117) there are two command line arguments that control the login session timeout. Both of these may need to be set, depending on your desired outcome: sessionTimeout is set in minutes; a user will be logged out after this time, no matter what. Default is 30 minutes. sessionEviction is set in seconds; a user will be logged out after this time if ..
How to customize 버전별 상이 2.117 이전: sessionTimeout 만 있었음 2.117 이후: sessionTimeout, sessionEviction 2개 설정 존재 옵션별 특징 sessionTimeout 분 단위 (Default: 30분) 이 시간이 지나면 사용자는 무조건 로그아웃. sessionEviction 초 단위 (Default: 30분) 세션이 유휴 상태이면 이 시간 이후에 사용자가 로그아웃됨 Ref. https://docs.cloudbees.com/docs/cloudbees-ci-kb/latest/best-practices/setting-session-timeout Customizing Jenkins login session timeout You want to cust..
관련자료 https://wiki.jenkins.io/display/JENKINS/Access+Logging 설정법 Jenkins 기동하는 스크립트에 아래 옵션 추가 simpleAccessLogger.file 설정에서 로그 파일 경로만 수정 Jenkins를 재기동해야 적용됨 --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/jenkins/access.log 여러 옵션 보는 법 $ java -jar jenkins-2.303.2.war --help Options: --webroot = folder where the WAR ..
'Manage Jenkins' menu -> 'Manage Plugins' menu -> 'Avaiable' tab Search plugins using a keyword 'theme' Check the plugins as below Simple Theme Theme Manager Dark Theme Material Theme Solarized Theme Check the plugins -> Click 'Install without restart' 'Manage Jenkins' menu -> 'Configure System' menu -> Search 'Built-in Themes'
Samples - name: Find files to delete find: paths: /home/mcpaint/backup patterns: *.tar.gz register: out - name: Delete files to delete file: path: "{{ item.path }}" state: absent with_items: "{{ out.files }}" loop_control: label: "{{ item.path }}" Documents https://docs.ansible.com/ansible/latest/collections/ansible/builtin/find_module.html 참고 자료: http://www.freekb.net/Article?id=573 Remove file..
몇 가지 증상이 나옵니다. metadata.xml 다운로드가 갑자기 느려졌다 metadata.xml 파일 크기는 분명 작은데.. 테스트 테스트 URL을 Group 으로 호출하면 -> 느림 해당 Proxy repository 로 다이렉트로 호출하면 -> 빠름 그렇다면 분명 Group 에 대한 문제 해결책 Group 내에 여러 Proxy Repository 중에서 Remote Repository 에 대한 커넥션 문제가 있는지 확인하세요. 분명 문제가 있는 Repository 가 있을 겁니다. 외부 저장소에 서비스를 중단하였거나, 외부 저장소에서 우리 IP를 차단(Banned) 했거나 발견되었다면, Manually Blocked 혹은 Auto Blocing enabled 체크를 하면 됩니다.
Ansible ‘When’ Statement: Check If Variable Is… Check if Ansible variable is defined (exists): tasks: - shell: echo "The variable 'foo' is defined: '{{ foo }}'" when: foo is defined - fail: msg="The variable 'bar' is not defined" when: bar is undefined Check if Ansible variable is empty: tasks: - fail: msg="The variable 'bar' is empty" when: bar|length == 0 - shell: echo "The variable 'foo' is n..
관련 내용: www.jenkins.io/doc/book/system-administration/security/configuring-content-security-policy/ Configuring Content Security Policy Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software www.jenkins.io .css 나 .js 요청 시 아래와 같은 메시지가 발생할 경우가 있다. Refused to apply inline style because it violates the following Content ..
There are logging as below 2020-01-24T12:01:30Z E! [outputs.influxdb]: when writing to [http://xxx:8086]: received error partial write: max-values-per-tag limit exceeded (100001/100000): measurement="network" tag="device" value="veth646a5a8" dropped=4; discarding points Related a document https://stackoverflow.com/questions/43770354/max-values-per-tag-limit-exceeded-influxdb Solution Edit a spec..
Many older builds per Jenkins Job have a significant impact on performance. Below is a script that looks for the old build count for each Job. get_build_count_for_each_job.sh https://github.com/mcpaint/scripts/blob/master/jenkins/get_build_count_for_each_job.sh # Input your Jenkins domain domain=https:// # Input directory with Jenkins jobs job_dir=/mcpaint/jenkins_home/jobs IFS=$'\n' jo..
Jenkins의 각 잡마다 오래된 빌드가 많을 경우 성능에 많은 영향을 끼친다. 각 잡마다 오래된 빌드 개수를 구하는 스크립트를 작성해 본다. get_build_count_for_each_job.sh https://github.com/mcpaint/scripts/blob/master/jenkins/get_build_count_for_each_job.sh # Input your Jenkins domain domain=https:// # Input directory with Jenkins jobs job_dir=/mcpaint/jenkins_home/jobs IFS=$'\n' jobs=(`ls -1 $job_dir`) for job in "${jobs[@]}"; do build_dir=$job_dir/$jo..
저는 Nginx 또는 Apache 셋팅 시 반드시 정적파일 분리 설정을 하는데요. Grafana의 경우 어떻게 하는지 알아봅시다. 구성 Client --- Nginx --- Grafana Grafana 앞단에 Nginx를 두어서 정적파일들(html, css, js, jpg, png 등)은 Nginx에서 처리하고 나머지 동적파일들은 Grafana로 넘기는 설정을 합니다. Grafana Grafana 의 경우 정적 요청들은 URI는 /public 패턴으로 옵니다. * 이것을 변경하려면 환경파일에서 아래 부분 변경하면 됩니다. 근데 뭐 굳이 변경할 필욘 없겠죠? # the path relative working path static_root_path = public Nginx 아래와 같이 설정합니다. upst..
2.5 버전을 기준으로 사용법이 변경되었습니다. 2.5 이후 버전 패스워드 파일을 만들고 OpenSSL을 이용하여 암호화 # Plain test 형태의 암호를 가진 파일 생성 $ vi .vault_pass_org # OpenSSL을 이용하여 암호화 $ sudo openssl aes-256-cbc -salt -in .vault_pass_org -out .vault_pass enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password:ansible.cfg 에 옵션 추가 [defaults] vault_identity_list = files@./.vault_pass변수파일을 암호화 $ ansible-vault en..
Changed how to use after version 2.5. Ansible Version: 2.5 or later Create a vault password file and encrypt using Openssl # Create a plain text password file and input password $ vi .vault_pass_org # Encrypt a password file using OpenSSL $ sudo openssl aes-256-cbc -salt -in .vault_pass_org -out .vault_pass enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password:..
Information Links https://plugins.jenkins.io/parameterized-trigger https://wiki.jenkins.io/display/JENKINS/Parameterized+Trigger+Plugin ID: parameterized-trigger How to configure Post-build Actions -> Trigger parameterized build on other projects
InfluxDB Plugin https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin 설정법 글로벌 설정 위 플러그인을 설치 후 젠킨스 설정으로 가면 아래와 같은 설정 화면을 볼 수 있다. Job scheduled time as timestamp: 잡이 실행하는 시점의 시간으로 기록 Expose Exceptions: InfluxDB 적재 오류시 Exception 발생 Global Listener: 전체 잡에 글로벌하게 적용 (관리하는 잡이 많을 경우 이 기능이 매우 유용) 잡 별개로 설정 Job 마다 별개로 설정이 가능하다. 자세한 설정은 위키를 참조하자. https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin
- Total
- Today
- Yesterday
- 플레이북
- Shell Script
- Playbook
- ssl
- JVM
- groovy
- vagrant
- iTerm2
- 쓰레드덤프
- rundeck
- 리눅스
- 데브옵스
- 젠킨스
- DevOps
- Jenkins
- 파이프라인
- URL Encoding
- Ansible
- Linux
- PostgreSQL
- Docker
- Nexus
- rsync
- Config History
- nginx
- openssl
- Password manager
- Thread Dump
- 엔서블
- 엔시블
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |