Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
[2018] MySQL 이중화 진화기NHN FORWARD24시간 365일 서비스를 위한 MySQL DB 이중화.
MySQL 이중화 방안들에 대해 알아보고 운영하면서 겪은 고민들을 이야기해 봅니다.
목차
1. DB 이중화 필요성
2. 이중화 방안
- HW 이중화
- MySQL Replication 이중화
3. 이중화 운영 장애
4. DNS와 VIP
5. MySQL 이중화 솔루션 비교
대상
- MySQL을 서비스하고 있는 인프라 담당자
- MySQL 이중화에 관심 있는 개발자
MariaDB 10.5 binary install (바이너리 설치)NeoClovaMariaDB 10.5 binary install (바이너리 설치)
- 네오클로바 DB지원사업부
1. About MariaDB
1.1 MariaDB 개요
1.2 MariaDB as a R-DBMS
1.3 Open Source Database System
2. 설치
2.1 설치 기본 정보
2.2 설치 준비
2.3 MariaDB 설치
2.4 MariaDB 시작 / 접속 / 종료
2.5 추가 설정
High Availability PostgreSQL with Zalando PatroniZalando TechnologyThere are many ways to run high availability with PostgreSQL. Here, we present a template for you to create your own customized, high-availability solution using Python and for maximum accessibility, a distributed configuration store like ZooKeeper or etcd.
Content Management With Apache JackrabbitJukka ZittingThe document provides an overview of Apache Jackrabbit, a content repository system that implements the JSR 170 specification. It discusses Jackrabbit's basic content modeling approach using node types and hierarchies, alternative views through references and search capabilities, advanced features like versioning and personalization, and best practices for implementation. The presentation concludes with encouragement to consider content management for any application that stores digital assets and information.
Query logging with proxysqlYoungHeon (Roy) KimThis document explains how to set up ProxySQL to log queries from users connecting directly to the database servers. It details installing and configuring ProxySQL to log queries to binary files, using a tool to convert the binary logs to text format, and setting up an ELK stack to index the query logs and make them searchable in Kibana. Filebeat is configured to ship the text query logs to Logstash, which parses them and sends the data to Elasticsearch. Kibana provides a web interface for viewing and analyzing the query logs.
Ѳ메뉴NeoClovaMaxScale is a database proxy that provides high availability and scalability for MariaDB servers. It can be used to configure load balancing of read/write connections, auto failover/switchover/rejoin using MariaDB GTID replication. Keepalived can be used with MaxScale to provide high availability by monitoring MaxScale and failing over if needed. The document provides details on setting up MariaDB replication with GTID, installing and configuring MaxScale and Keepalived. It also describes testing the auto failover functionality.
NginxDhrubaji Mandal ♛Nginx is an open-source, lightweight web server that can serve static files, act as a reverse proxy, load balancer, and HTTP cache. It is fast, scalable, and improves performance and security for large websites. Some key companies that use Nginx include Google, IBM, LinkedIn, and Facebook. Nginx follows a master-slave architecture with an event-driven, asynchronous, and non-blocking model. The master process manages worker processes that handle requests in a single-threaded manner, improving concurrency.
Tutorial: Using GoBGP as an IXP connecting routerShu Sugimoto- Show you how GoBGP can be used as a software router in conjunction with quagga
- (Tutorial) Walk through the setup of IXP connecting router using GoBGP
GitShinu SureshThis document provides an overview of Git and how to use it. It discusses version control systems and how distributed version control systems like Git work. It explains how Git was created by Linus Torvalds for Linux kernel development and why it gained popularity due to its speed and efficiency. The document then covers Git basics like setup, commits, branches and workflows. It also introduces tools for using Git in Eclipse and GitLab for code hosting and collaboration.
IT Automation with AnsibleRayed AlrashedThis document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
NGINX: Basics and Best PracticesNGINX, Inc.On-demand recording: nginx.com/resources/webinars/nginx-basics-best-practices
You’ve heard of NGINX and the benefits it can provide to your web application, but maybe you’re not sure how to get started. There are a lot of tutorials online, but they can be outdated and contradict each other, making things more challenging. In this webinar we’ll cover the basics of NGINX to help you effectively begin using it as part of your existing or new web app.
This webinar covers how to:
* Install NGINX and verify it's properly running
* Create NGINX configurations for reverse proxy, load balancer, etc.
* Improve performance using keepalives and other NGINX directives
* Debug and troubleshoot using NGINX logs
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis도커 무작정 따라하기
- 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커의 기본 개념부터 설치와 사용 방법까지 설명합니다.
더 자세한 내용은 가장 빨리 만나는 도커(Docker)를 참조해주세요~
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
Introduction to NginxKnoldus Inc.Nginx pronounced as "Engine X" is an open source high performance web and reverse proxy server which supports protocols like HTTP, HTTPS, SMTP, IMAP. It can also be used for load balancing and HTTP caching.
NGINX ADC: Basics and Best Practices – EMEANGINX, Inc.In this webinar we help you get started with NGINX, industry’s most ubiquitous web server and API gateway. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus. We provide insights about using NGINX Controller to manage your NGINX Plus instances.
Watch this webinar to learn:
- How to create NGINX configurations for web server, load balancer, etc.
- About improving performance using keepalives and other NGINX directives
- How the NGINX Controller Load Balancing Module can manage NGINX Plus instances at scale
- About augmenting your existing ADC with NGINX
https://www.nginx.com/resources/webinars/nginx-adc-basics-best-practices-emea/
PostgreSQL WAL for DBAs PGConf APACDevrim Gunduz gives a presentation on Write-Ahead Logging (WAL) in PostgreSQL. WAL logs all transactions to files called write-ahead logs (WAL files) before changes are written to data files. This allows for crash recovery by replaying WAL files. WAL files are used for replication, backup, and point-in-time recovery (PITR) by replaying WAL files to restore the database to a previous state. Checkpoints write all dirty shared buffers to disk and update the pg_control file with the checkpoint location.
Docker, LinuX ContainerAraf Karsh HamidUnderstanding Docker Container.
Create docker images and understand the internals of Linux Containers.
Dockerization of AppliFire RAD Platform...
Terraform IntroductionsoniasnowfrogThis document discusses the infrastructure provisioning tool Terraform. It can be used to provision resources like EC2 instances, storage, and DNS entries across multiple cloud providers. Terraform uses configuration files to define what infrastructure should be created and maintains state files to track changes. It generates execution plans to determine what changes need to be made and allows applying those changes to create, update or destroy infrastructure.
eBPF - Observability In DeepMydbopsIn the Cloud Native community, eBPF is gaining popularity, which can often be the best solution for solving different challenges with deep observability of system. Currently, eBPF is being embraced by major players.
Mydbops co-Founder, Kabilesh P.R (MySQL and Mongo Consultant) illustrates on debugging linux issues with eBPF. A brief about BPF & eBPF, BPF internals and the tools in actions for faster resolution.
Ceph issue 해결 사례Open Source Consulting[Open Infrastructure & Cloud Native Days Korea 2019]
커뮤니티 버전의 OpenStack 과 Ceph를 활용하여 대고객서비스를 구축한 사례를 공유합니다. 유연성을 확보한 기업용 클라우드 서비스 구축 사례와 높은 수준의 보안을 요구하는 거래소 서비스를 구축, 운영한 사례를 소개합니다. 또한 이 프로젝트에 사용된 기술 스택 및 장애 해결사례와 최적화 방안을 소개합니다. 오픈스택은 역시 오픈소스컨설팅입니다.
#openstack #ceph #openinfraday #cloudnative #opensourceconsulting
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community- 발표자: 고려대학교 임재민
- 자료: /openstack_kr/openinfra-days-korea-2018-track-4-grafana-openstack
Query logging with proxysqlYoungHeon (Roy) KimThis document explains how to set up ProxySQL to log queries from users connecting directly to the database servers. It details installing and configuring ProxySQL to log queries to binary files, using a tool to convert the binary logs to text format, and setting up an ELK stack to index the query logs and make them searchable in Kibana. Filebeat is configured to ship the text query logs to Logstash, which parses them and sends the data to Elasticsearch. Kibana provides a web interface for viewing and analyzing the query logs.
Ѳ메뉴NeoClovaMaxScale is a database proxy that provides high availability and scalability for MariaDB servers. It can be used to configure load balancing of read/write connections, auto failover/switchover/rejoin using MariaDB GTID replication. Keepalived can be used with MaxScale to provide high availability by monitoring MaxScale and failing over if needed. The document provides details on setting up MariaDB replication with GTID, installing and configuring MaxScale and Keepalived. It also describes testing the auto failover functionality.
NginxDhrubaji Mandal ♛Nginx is an open-source, lightweight web server that can serve static files, act as a reverse proxy, load balancer, and HTTP cache. It is fast, scalable, and improves performance and security for large websites. Some key companies that use Nginx include Google, IBM, LinkedIn, and Facebook. Nginx follows a master-slave architecture with an event-driven, asynchronous, and non-blocking model. The master process manages worker processes that handle requests in a single-threaded manner, improving concurrency.
Tutorial: Using GoBGP as an IXP connecting routerShu Sugimoto- Show you how GoBGP can be used as a software router in conjunction with quagga
- (Tutorial) Walk through the setup of IXP connecting router using GoBGP
GitShinu SureshThis document provides an overview of Git and how to use it. It discusses version control systems and how distributed version control systems like Git work. It explains how Git was created by Linus Torvalds for Linux kernel development and why it gained popularity due to its speed and efficiency. The document then covers Git basics like setup, commits, branches and workflows. It also introduces tools for using Git in Eclipse and GitLab for code hosting and collaboration.
IT Automation with AnsibleRayed AlrashedThis document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
NGINX: Basics and Best PracticesNGINX, Inc.On-demand recording: nginx.com/resources/webinars/nginx-basics-best-practices
You’ve heard of NGINX and the benefits it can provide to your web application, but maybe you’re not sure how to get started. There are a lot of tutorials online, but they can be outdated and contradict each other, making things more challenging. In this webinar we’ll cover the basics of NGINX to help you effectively begin using it as part of your existing or new web app.
This webinar covers how to:
* Install NGINX and verify it's properly running
* Create NGINX configurations for reverse proxy, load balancer, etc.
* Improve performance using keepalives and other NGINX directives
* Debug and troubleshoot using NGINX logs
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!pyrasis도커 무작정 따라하기
- 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
도커의 기본 개념부터 설치와 사용 방법까지 설명합니다.
더 자세한 내용은 가장 빨리 만나는 도커(Docker)를 참조해주세요~
http://www.pyrasis.com/private/2014/11/30/publish-docker-for-the-really-impatient-book
Introduction to NginxKnoldus Inc.Nginx pronounced as "Engine X" is an open source high performance web and reverse proxy server which supports protocols like HTTP, HTTPS, SMTP, IMAP. It can also be used for load balancing and HTTP caching.
NGINX ADC: Basics and Best Practices – EMEANGINX, Inc.In this webinar we help you get started with NGINX, industry’s most ubiquitous web server and API gateway. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus. We provide insights about using NGINX Controller to manage your NGINX Plus instances.
Watch this webinar to learn:
- How to create NGINX configurations for web server, load balancer, etc.
- About improving performance using keepalives and other NGINX directives
- How the NGINX Controller Load Balancing Module can manage NGINX Plus instances at scale
- About augmenting your existing ADC with NGINX
https://www.nginx.com/resources/webinars/nginx-adc-basics-best-practices-emea/
PostgreSQL WAL for DBAs PGConf APACDevrim Gunduz gives a presentation on Write-Ahead Logging (WAL) in PostgreSQL. WAL logs all transactions to files called write-ahead logs (WAL files) before changes are written to data files. This allows for crash recovery by replaying WAL files. WAL files are used for replication, backup, and point-in-time recovery (PITR) by replaying WAL files to restore the database to a previous state. Checkpoints write all dirty shared buffers to disk and update the pg_control file with the checkpoint location.
Docker, LinuX ContainerAraf Karsh HamidUnderstanding Docker Container.
Create docker images and understand the internals of Linux Containers.
Dockerization of AppliFire RAD Platform...
Terraform IntroductionsoniasnowfrogThis document discusses the infrastructure provisioning tool Terraform. It can be used to provision resources like EC2 instances, storage, and DNS entries across multiple cloud providers. Terraform uses configuration files to define what infrastructure should be created and maintains state files to track changes. It generates execution plans to determine what changes need to be made and allows applying those changes to create, update or destroy infrastructure.
eBPF - Observability In DeepMydbopsIn the Cloud Native community, eBPF is gaining popularity, which can often be the best solution for solving different challenges with deep observability of system. Currently, eBPF is being embraced by major players.
Mydbops co-Founder, Kabilesh P.R (MySQL and Mongo Consultant) illustrates on debugging linux issues with eBPF. A brief about BPF & eBPF, BPF internals and the tools in actions for faster resolution.
Ceph issue 해결 사례Open Source Consulting[Open Infrastructure & Cloud Native Days Korea 2019]
커뮤니티 버전의 OpenStack 과 Ceph를 활용하여 대고객서비스를 구축한 사례를 공유합니다. 유연성을 확보한 기업용 클라우드 서비스 구축 사례와 높은 수준의 보안을 요구하는 거래소 서비스를 구축, 운영한 사례를 소개합니다. 또한 이 프로젝트에 사용된 기술 스택 및 장애 해결사례와 최적화 방안을 소개합니다. 오픈스택은 역시 오픈소스컨설팅입니다.
#openstack #ceph #openinfraday #cloudnative #opensourceconsulting
[OpenInfra Days Korea 2018] (Track 4) - Grafana를 이용한 OpenStack 클라우드 성능 모니터링OpenStack Korea Community- 발표자: 고려대학교 임재민
- 자료: /openstack_kr/openinfra-days-korea-2018-track-4-grafana-openstack
Git 더하기 GitHub(구름IDE 환경)Junyoung Lee* ݺߣShare에서 특정 폰트로 쓰인 글자가 보이지 않는 경우가 있습니다. 다운로드 하셔서 PDF 리더로 보시는 것을 권해드립니다. -> 기존 폰트를 모두 나눔고딕으로 변경하였습니다.
OSS 포럼 개발 교육으로 진행한 Git, GitHub 강의 자료입니다.
(http://onoffmix.com/event/67081)
간단한 로또 번호 생성기 프로그램을 작성하면서 Git, GitHub에 대해 배웁니다.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude KimGoogle Cloud Platform 인 Compute Engine에 Docker 를 올리기.
Docker에 JVM 소프트웨어인 JIRA 및 Confluence를 설치하고 실제 서비스단계까지의 구성은 어떻게 하는지에 대한 설명입니다.
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubJunyoung LeeOSS 포럼 개발자 교육 'Git/GitHub 입문하기 - 부산'에서 Git 실습에서 사용한 자료입니다. (http://onoffmix.com/event/69536)
지난 번 자료(http://www.slideshare.net/ssusercef361/git-github-62006866)는 구름 IDE를 활용해서 진행했고, 이번 자료는 Git 클라이언트를 설치해서 진행했습니다. GitHub 가입과 Git 클라이언트 설치는 강의 전 준비(http://www.slideshare.net/ssusercef361/github-git)를 참고해주세요.
1. Git과 Github
- 버전 관리?
- Git은 어쩌다 세상에 나왔나?
- Github?
2. Git 시작하기 - 실습
- 실습 준비 : Github, Goorm IDE 가입하기
- 리눅스 명령어와 친해지기
- Git 필수 개념 집고 넘어가기
- Step by Step Git 명령어 실습 (커밋, 브랜치, 원격 저장소 등)
- 옆자리 분과 Fork하고, Pull Request
3. Git과 Github 맛깔나게 활용하기
- Github의 협업 기능 살펴보기
- Github Page
- Gitbook
4. 있어보이는 Git 활용
- .git 디렉토리 살펴보기
- Git Branch 전략
- Commit Message 활용
특정 폰트가 ݺߣShare.net에서 보이지 않는 관계로 모두 나눔고딕으로 통일했습니다.
Actual PoC guide for Virtual Desktop Infrastructure (Korean)Changhyun LimActual PoC Guide for Virtual Desktop Infrastructure with citirix XenDekstop and XenServer
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi엔터프라이즈 고객사 IT 부서 담당자분들께 실습 교육을 위해 오픈소스컨설팅 한철희님께서 만든 자료입니다.
사전에 고객 테스트를 위해 실습환경을 완벽하게 만들어가는 센스!
기초부터 한 걸음이 얼마나 중요한 지 다들 아실거라 믿습니다.
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기Ji-Woong Choi오픈소스 기반의 솔루션을 만들고 그 솔루션의 방향성을 어떤 방식으로 잡아가야 하는지 그 과정에 대해서 설명합니다.
사내 교육으로 진행되었던 자료이며, 본 자료가 필요하신 분은 메시지 주시거나 메일 주시면 제공해드리도록 하겠습니다.
[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기Ji-Woong Choi기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육Ji-Woong ChoiAnsible 소개, 구성요소, 설치, 환경 설정과 패키지/패스워드 관리에 대한 실습을 진행하는 교육 자료 공유합니다.
오픈스택 기반 환경하에 운영하는 고객사에 Cloud Team이 제공하는 교육서비스입니다.
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기Ji-Woong Choi2018년도 Amazon AWS re:Invent Machine Learning 부분에 대한 요약을 오픈소스컨설팅 서경빈(AWS SA)님이 해주셨습니다.
사내 발표 때 아주 쉽게 설명해주셔서 좋았는데, 해당 내용은 Tech Blog에서도 확인이 가능합니다.
https://tech.osci.kr/2018/12/06/50693623/
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12Ji-Woong Choi조사하다가 재작년 자료를 발견해서 늦었지만 공유를 합니다. ELK를 활용한 장애분석 시스템을 만드는 방법에 대해 고민한 내용으로 고객께서도 도움을 주신 내용입니다.
이 때문에 엘라스틱과의 파트너십을 통해 비즈니스를 강화할 예정에 있습니다.
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong ChoiCloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
OpenStack Summit 2017 참석후기Ji-Woong Choi장소 : 미국 보스턴 Hynes Convention Center
일시 : 2017년 5월 6일 ~ 11일 (미국 동부 시각)
참가 인원 : 5000명 이상
참가 업체 : 1014개
참가국 : 63개국
세션 수 : 750여 개(이전 Summit 대비 약 250여 개 증가)
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi- 클라우드 속의 Docker
- Docker Architecture & Build
- Docker 환경 구축
- Docker 데이터 볼륨, 이미지, 네트워킹
- Kubernetes 목적 및 활용
- Docker, Kubernetes 구성
- Docker Testing
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong ChoiOpenStack Ceph & Neutron에 대한 설명을 담고 있습니다.
1. OpenStack
2. How to create instance
3. Ceph
- Ceph
- OpenStack with Ceph
4. Neutron
- Neutron
- How neutron works
5. OpenStack HA- controller- l3 agent
6. OpenStack multi-region
Docker Setting for Static IP allocationJi-Woong Choi도커에서 Static IP 할당을 위한 세팅 방법을 설명하는 문서입니다.
빅데이터를 위하여 네임노드와 데이터 노드를 도커로 구현 중에 IP 문제로 인해 정적(static) IP를 할당하게 하는 2가지 방안에 대한 문서입니다.
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi본 문서는 Scouter APM의 InfluxDB에 대한 세팅 및 정보를 볼 수 있도록 구성하는 가이드 문서입니다.
스카우터에 플러그인 제작으로 참여하시고 계시는 박상천 부장님의 컨트리뷰션 문서입니다.
[오픈소스컨설팅]Atlassian JIRA Quick GuideJi-Woong Choi아틀라시안 JIRA를 사용할 때 가장 핵심적으로 해야 할 내용들만 추려서 가이드 문서를 작성하였습니다.
그러한 작업들로는 프로젝트, 스킴(Scheme), 이메일 세팅, 권한 관리, 백업/복구 등이 있습니다.
관리자가 이런 일을 잘 할 수 있도록 핵심적인 내용만으로 구성한 문서를 공유합니다.
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편Ji-Woong Choi레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
[오픈소스컨설팅]systemd on RHEL7Ji-Woong ChoiRHEL7에 적용된 systemd의 소개, 특장점, 부팅 프로세스, 유닛 파일의 구조, systemd에 대한 주요 명령어를 소개하는 장표입니다.
본 장표를 활용하여 RHEL7, CentOS7에 대한 내용을 이해하시는 데 도움이 되었으면 합니다.
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong ChoiTTA에 KVM 기반 프로비저닝 기술에 대한 데모 세션을 포함하는 세미나 관련 자료입니다. 클라우드환경으로 가고자 해서Paas를 어떤 플랫폼위에 올린다면 그리고 가상화 환경이나 클라우드 환경으로 올린다면 어떤 환경으로 올릴것인가를 고민하여야 합니다.
그리고 이 hypervisor중에 cloud 환경에서 가장 주목받는 kvm을 기반으로 하는 두가지 가상화 클라우드 솔루션인 rhev와 openstack을 잠시 살펴볼 것입니다.
그리고 이러한 가상화 클라우드 환경에서 자동화 하는 솔류션을 어떻게 고려해야 하는가를 살펴보고, 그런 솔류션중에 하나인 아테나 피콕에 대해 살펴보겠습니다.
그리고 오픈스택환경하에서 구축해서 사용했던 사용기와 이를 자동화하기위해 개발자들이 사용했던 간단한 ansible provisioning 모습을 시연합니다.
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
1. Docker 를 활용한 Gitlab CI-CD 구성 테스트
Prepared By:
Document Owner(s) Project/Organization Role
Deuk Ryong Lee
Project Status Report Version Control
Version Date Author Change Description
0.1 2017/12/25 Deuk Ryong Lee Document created
2. 2
TABLE OFCONTENTS
본 문서의 목적 .................................................................................................................4
작업의 범위..........................................................................................................4
Pre-Request .........................................................................................................4
테스트 환경 ..........................................................................................................4
버전 정보 .............................................................................................................5
CI(CONTINUOUS INTEGRATION) / CD(CONTINUOUS DELIVERY) ....................................6
CI(Continuous Integration)..................................................................................6
CD(Continuous Delivery) .....................................................................................6
DOCKER 설치 및 설정 ......................................................................................................7
Docker 설치 스크립트.............................................................................................7
GITLAB 및 GITLAB RUNNER ............................................................................................8
Gitlab 설치 스크립트.............................................................................................9
Gitlab Web 접속..................................................................................................9
그룹 생성 ...........................................................................................................10
프로젝트 생성.....................................................................................................12
Gitlab runner token 확인 ...................................................................................14
Gitlab runner 설치 스크립트................................................................................16
runner 등록 확인................................................................................................16
SPRING BOOT APPLICATION CI/CD 테스트 설정 .............................................................18
Sample Spring boot application 생성 스크립트....................................................18
자바 소스 추가 ....................................................................................................19
3. 3
Dockerfile 추가 ..................................................................................................20
.gitlab-ci.yml 소스 추가.......................................................................................22
SPRING BOOT APPLICATION CI/CD 테스트 결과 .............................................................25
CI/CD pipeline 확인............................................................................................25
컨테이너 레지스트리 확인.....................................................................................26
빌드 결과 확인 ....................................................................................................27
배포 결과 확인 ....................................................................................................28
4. 4
본 문서의 목적
본 문서의 목적은 Docker 를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드
문서이다.
본 문서에서는 Docker 및 Gitlab 에 대한 개요 및 사용법에 대해서는 다루지 않는다.
Docker image 를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web
application 을 이용하여 소스 변경에 따른 commit 이 발생 했을 때 Gitlab CI/CD 기능을 통해
application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하였다.
작업의 범위
작업에 대한 결과 리포트는 아래와 같은 내용을 포함하고 있다.
Docker 설치 및 설정
Gitlab / Gitlab runner 설치 및 설정
Spring boot application CI/CD 테스트
Pre-Request
- 인터넷 연결이 가능한 CentOS 버전 7 이상 설치 된 VM or 서버 1 대(메모리 4GB 이상)
테스트 환경
구분 내용
IP 10.0.0.101 (사용자 환경에 맞는 IP 사용 가능)
5. 5
버전 정보
구분 내용
Server CentOS Linux release 7.4.1708
Docker Engine 17.09.1-ce
Gitlab Gitlab Community Edition 10.2.5
Gitlab runner 10.2.0
6. 6
CI(Continuous Integration) / CD(Continuous Delivery)
CI(Continuous Integration)
개발자가 각각 개발한 소스코드를 모아서 한꺼번에 빌드하는 통합 빌드의 과정을 특정 시점이 아니라
주기적으로 수행함으로써 통합에서 발생하는 오류를 사전에 해결하고 이러한 과정들에 소요되는 시간을
줄이기 위한 기법을 말한다.
개발자 생산성 향상
버그를 더 빠르게 발견 및 해결
업데이트를 더 빠르게 제공
CD(Continuous Delivery)
소프트웨어를 더 빠르게, 더 주기적으로 빌드하고 테스트하고 출시하는 것을 목표로 변경사항의 배포에
대한 비용, 시간, 위험을 줄일 수 있게 한다.
소프트웨어 릴리스 프로세스 자동화
개발자 생산성 향상
버그를 더 빠르게 발견 및 해결
업데이트를 더 빠르게 제공
7. 7
Docker 설치 및 설정
Docker 설치 스크립트
# 필수 패키지 설치
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Docker CE repo 구성
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-
ce.repo
# Docker CE 설치
sudo yum -y install docker-ce
#Docker CE 서비스 등록 및 시작
sudo systemctl enable docker && sudo systemctl start docker
8. 8
Gitlab 및 Gitlab runner
Gitlab 은 소스 저장소 역할 뿐만 아니라 이슈 트래킹 등 다양한 기능을 제공하며, Gitlab runner 를
이용하여 CI / CD 파이프 라인을 통합하여 코드를 작성, 테스트, 배포 및 모니터링할 수 있는 기능을
제공한다.
9. 9
Gitlab 설치 스크립트
Gitlab Web 접속
- 접속 URL : http://10.0.0.101 -> 사용자 환경에 맞는 IP http://xxx.xxx.xxx.xxx
- ID / PW : root / root_git
# 사용자 환경에 맞는 IP 로 대체 10.0.0.101 -> xxx.xxx.xxx.xxx
# Gitlab container registry 에 https 가 아닌 http 로 접속 하기 위한 설정
sudo cat << EOF > /etc/docker/daemon.json
{
"insecure-registries": ["10.0.0.101:5005"]
}
EOF
# Docker CE 서비스 재시작
sudo systemctl restart docker
# Gitlab Docker image 다운로드 및 서비스 시작
# Gitlab service 포트 80
# Gitlab Container Registry 포트 5005
# Gitlab root 관리자 비밀번호 root_git
# 사용자 환경에 맞는 IP 로 대체 10.0.0.101 -> xxx.xxx.xxx.xxx
sudo docker run --detach
--publish 80:80
--publish 5005:5005
--name gitlab
--restart always
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://10.0.0.101'; registry_external_url
'http://10.0.0.101:5005'"
--env GITLAB_ROOT_PASSWORD="root_git"
--env GITLAB_TIMEZONE="Asia/Seoul"
--volume /data/gitlab/config:/etc/gitlab:Z
--volume /data/gitlab/logs:/var/log/gitlab:Z
--volume /data/gitlab/data:/var/opt/gitlab:Z
gitlab/gitlab-ce:latest
18. 18
Spring boot application CI/CD 테스트 설정
Sample Spring boot application 생성 스크립트
- commit 결과 확인 http://10.0.0.101/dev/sample/tree/master
# Git client 설치
yum install -y git
# Sample Spring Boot Source 다운로드
curl https://start.spring.io/starter.tgz -d dependencies=web -d
type=gradle-project -d baseDir=sample | tar -xzvf -
cd sample
# Git 설정 및 commit
# Gitlab login ID / PW 사용 -> root / root_git
# 사용자 환경에 맞는 IP 로 대체 10.0.0.101 -> xxx.xxx.xxx.xxx
git init
git config user.name "Administrator"
git config user.email "admin@example.com"
git remote add origin http://root:root_git@10.0.0.101/dev/sample.git
git add .
git commit -m "Initial commit"
git push -u origin master
19. 19
자바 소스 추가
- + 클릭 후 New file 선택
- master 항목에 src/main/java/com/example/demo/HomeController.java 입력
- 아래의 소스 입력 후 Commit changes 클릭
20. 20
Dockerfile 추가
- + 클릭 후 New file 선택
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HomeController {
@RequestMapping("/")
public @ResponseBody String greeting() {
return "Hello World";
}
}
21. 21
- master 항목에 Dockerfile 입력
- 아래의 소스 입력 후 Commit changes 클릭
FROM openjdk:8-jre-alpine
VOLUME /tmp
ADD /build/libs/*.jar app.jar
ENTRYPOINT ["sh", "-c", "java -Djava.security.egd=file:/dev/./urandom
-Duser.country=KR -Duser.language=ko -Duser.timezone=Asia/Seoul -jar
/app.jar"]
22. 22
.gitlab-ci.yml 소스 추가
- + 클릭 후 New file 선택
- master 항목에 .gitlab-ci.yml 입력
- 아래의 소스 입력 후 Commit changes 클릭