[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육Ji-Woong ChoiAnsible 소개, 구성요소, 설치, 환경 설정과 패키지/패스워드 관리에 대한 실습을 진행하는 교육 자료 공유합니다.
오픈스택 기반 환경하에 운영하는 고객사에 Cloud Team이 제공하는 교육서비스입니다.
Introduction to ansibleOmid VahdatyAnsible is an automation platform that allows users to configure, deploy, and manage applications on servers. It combines multi-node software deployment, configuration management, and task execution. Ansible works by provisioning machines using SSH and executing commands via modules. Playbooks allow users to automate complex deployment workflows through YAML scripts. Roles in Ansible allow for reusable and modular components.
Ansible - IntroductionStephane ManciotThis document provides an introduction and overview of Ansible, including its main features, installation process, inventory file configuration, ad-hoc command execution, playbook usage, roles, variables, and conditions. Ansible is an automation tool that can configure systems, deploy software, and orchestrate more complex IT workloads. It uses SSH and does not require installing any agents on remote systems. Playbooks allow defining entire deployment processes as code for multi-machine orchestration.
Ansible presentationJohn LynchThis document provides an overview of Ansible, an open source tool for configuration management and application deployment. It discusses how Ansible aims to simplify infrastructure automation tasks through a model-driven approach without requiring developers to learn DevOps tools. Key points:
- Ansible uses YAML playbooks to declaratively define server configurations and deployments in an idempotent and scalable way.
- It provides ad-hoc command execution and setup facts gathering via SSH. Playbooks can target groups of servers to orchestrate complex multi-server tasks.
- Variables, templates, conditionals allow playbooks to customize configurations for different environments. Plugins support integration with cloud, monitoring, messaging tools.
- Ansible aims to reduce complexity compared
DevOps Meetup ansiblesriram_rajan- The document provides biographical information about Sri Rajan, including that he is from India, has worked in IT for over 10 years including 6 years at Rackspace, and has expertise in Linux, OpenStack, and automation.
- It also provides an overview of Rackspace, including that they have over 5,000 employees serving customers in over 120 countries from 9 data centers worldwide.
- Sri Rajan's contact information is included at the end.
Ansible Introduction Robert ReizAnsible is tool for Configuration Management. The big difference to Chef and Puppet is, that Ansible doesn't need a Master and doesn't need a special client on the servers. It works completely via SSH and the configuration is done in Yaml.
These slides give a short introduction & motivation for Ansible.
AnsibleKamil LelonekThis document summarizes the key features and benefits of Ansible, an agentless automation tool. It notes that Ansible is simple to use with a human-readable YAML language that does not require coding skills. It is powerful yet efficient for deployment, orchestration, and provisioning. It has basic features like modules for managing files, templates, packages, and retrieving file states. Ansible also has wide OS support, integrates with major clouds, works with other configuration tools, and has an easy learning curve and extensible plugin architecture. It helps lower maintenance costs and allows more reliable, faster deployments with automated recovery and failover.
Ansible - Hands on TrainingMehmet Ali Aydın● Fundamentals
● Key Components
● Best practices
● Spring Boot REST API Deployment
● CI with Ansible
● Ansible for AWS
● Provisioning a Docker Host
● Docker&Ansible
https://github.com/maaydin/ansible-tutorial
Kubernetes #1 introTerry ChoKubernetes is an open-source container management platform. It has a master-node architecture with control plane components like the API server on the master and node components like kubelet and kube-proxy on nodes. Kubernetes uses pods as the basic building block, which can contain one or more containers. Services provide discovery and load balancing for pods. Deployments manage pods and replicasets and provide declarative updates. Key concepts include volumes for persistent storage, namespaces for tenant isolation, labels for object tagging, and selector matching.
Best practices for ansibleGeorge ShuklinThis document provides best practices for using Ansible including:
- Break projects into common basics, specific configurations, non-standard software, and ad-hoc scripts.
- Reduce scope so each piece works within its own domain without touching unrelated areas.
- Name things properly to increase understandability.
- Use Ansible lint to catch errors and improve code quality.
- Use shell and command modules carefully and ensure idempotency or ability to detect changes.
- Maintain staging environments that closely mimic production to test changes.
Introduction to AnsibleCoreStackThis document provides an introduction and overview of Ansible, an open-source automation tool. It discusses how Ansible uses an agentless architecture with YAML files to automate configuration management and deployment tasks across multiple servers. The document also outlines key Ansible concepts like inventory files, modules, playbooks and components that make up playbooks like tasks, handlers, templates and roles.
Automating with AnsibleRicardo SchmidtRicardo Schmidt gave a presentation on Ansible, an open source tool for configuration management, application deployment, provisioning, and orchestration. He explained that Ansible is fast, clear, complete, and secure. It uses SSH to connect to nodes agentlessly without requiring additional firewall rules or open ports. Key components include the inventory to define hosts and groups, modules to run tasks on nodes, and playbooks to orchestrate tasks across multiple hosts. The presentation demonstrated Ansible's capabilities through examples and a demo of its core features.
AwxScott van KalkenAWX is a web-based user interface, REST API, and task engine built on top of Ansible. It allows users to run Ansible playbooks from a source code repository on nodes using a GUI or API. AWX provides features like real-time playbook output, push button deployment, authentication methods, projects/jobs/workflows, security, notifications, logging, and scheduling. It uses a full RBAC security model and can be installed on Docker, Kubernetes, or OpenShift with default containers for its components like Postgres, RabbitMQ, and Memcached.
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.
Ansible presentationSuresh KumarThis document discusses repetitive system administration tasks and proposes Ansible as a solution. It describes how Ansible works using agentless SSH to automate tasks like software installation, configuration, and maintenance across multiple servers. Key aspects covered include Ansible's inventory, modules, playbooks, templates, variables, roles and Docker integration. Ansible Tower is also introduced as a GUI tool for running Ansible jobs. The document recommends Ansible for anyone doing the same tasks across multiple servers to gain efficiencies over manual processes.
Automation with ansibleKhizer NaeemA hands-on workshop on "Automation with Ansible". Starting from installing and setting up Ansible to managing servers and application deployments.
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법Open Source ConsultingKubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
AnsibleVishal YadavIntroduces Ansible as DevOps favorite choice for Configuration Management and Server Provisioning. Enables audience to get started with using Ansible. Developed in Python which only needs YAML syntax knowledge to automate using this tool.
ansible why ?Yashar EsmaildokhtThis document contains information about the sys/net/sec admin Yashar Esmaildokht, including their contact information and websites. It then provides a brief overview of the open-source automation tool Ansible, describing its main features and uses for configuration management, application deployment, and cloud provisioning. Requirements and versions of Ansible are listed. The document concludes with examples of Ansible concepts including playbooks, tasks, modules, variables, and host inventory organization.
실전 서버 부하테스트 노하우 YoungSu SonBestcon 2019에 발표한 웹서버 성능 테스트 실전 노하우 자료입니다.
테스트 케이스 생성부터, 테스트 전략, 데이터 해석 (APM, 인프라 모니터링), 클라우드에서 주의할 사항등 도움이 될만한 내용들만 간추려 전달합니다.
부하 테스트시 어니컴을 불러주세요
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi오픈소스 WAS 모니터링 솔루션인 Scouter에 대한 간략한 설치가이드입니다. JBoss 기준으로 작성되었으며, JBoss 관련된 스크립트는 github.com/OpenSourceConsulting/jboss-eap-6-scripts에서도 확인하실 수 있습니다.
Ansible presentationKumar YYesterday I gave presentation on Ansible and it was successful . It give basic understanding of playbook and an example implementation of jboss application from scratch
DevOps Meetup ansiblesriram_rajan- The document provides biographical information about Sri Rajan, including that he is from India, has worked in IT for over 10 years including 6 years at Rackspace, and has expertise in Linux, OpenStack, and automation.
- It also provides an overview of Rackspace, including that they have over 5,000 employees serving customers in over 120 countries from 9 data centers worldwide.
- Sri Rajan's contact information is included at the end.
Ansible Introduction Robert ReizAnsible is tool for Configuration Management. The big difference to Chef and Puppet is, that Ansible doesn't need a Master and doesn't need a special client on the servers. It works completely via SSH and the configuration is done in Yaml.
These slides give a short introduction & motivation for Ansible.
AnsibleKamil LelonekThis document summarizes the key features and benefits of Ansible, an agentless automation tool. It notes that Ansible is simple to use with a human-readable YAML language that does not require coding skills. It is powerful yet efficient for deployment, orchestration, and provisioning. It has basic features like modules for managing files, templates, packages, and retrieving file states. Ansible also has wide OS support, integrates with major clouds, works with other configuration tools, and has an easy learning curve and extensible plugin architecture. It helps lower maintenance costs and allows more reliable, faster deployments with automated recovery and failover.
Ansible - Hands on TrainingMehmet Ali Aydın● Fundamentals
● Key Components
● Best practices
● Spring Boot REST API Deployment
● CI with Ansible
● Ansible for AWS
● Provisioning a Docker Host
● Docker&Ansible
https://github.com/maaydin/ansible-tutorial
Kubernetes #1 introTerry ChoKubernetes is an open-source container management platform. It has a master-node architecture with control plane components like the API server on the master and node components like kubelet and kube-proxy on nodes. Kubernetes uses pods as the basic building block, which can contain one or more containers. Services provide discovery and load balancing for pods. Deployments manage pods and replicasets and provide declarative updates. Key concepts include volumes for persistent storage, namespaces for tenant isolation, labels for object tagging, and selector matching.
Best practices for ansibleGeorge ShuklinThis document provides best practices for using Ansible including:
- Break projects into common basics, specific configurations, non-standard software, and ad-hoc scripts.
- Reduce scope so each piece works within its own domain without touching unrelated areas.
- Name things properly to increase understandability.
- Use Ansible lint to catch errors and improve code quality.
- Use shell and command modules carefully and ensure idempotency or ability to detect changes.
- Maintain staging environments that closely mimic production to test changes.
Introduction to AnsibleCoreStackThis document provides an introduction and overview of Ansible, an open-source automation tool. It discusses how Ansible uses an agentless architecture with YAML files to automate configuration management and deployment tasks across multiple servers. The document also outlines key Ansible concepts like inventory files, modules, playbooks and components that make up playbooks like tasks, handlers, templates and roles.
Automating with AnsibleRicardo SchmidtRicardo Schmidt gave a presentation on Ansible, an open source tool for configuration management, application deployment, provisioning, and orchestration. He explained that Ansible is fast, clear, complete, and secure. It uses SSH to connect to nodes agentlessly without requiring additional firewall rules or open ports. Key components include the inventory to define hosts and groups, modules to run tasks on nodes, and playbooks to orchestrate tasks across multiple hosts. The presentation demonstrated Ansible's capabilities through examples and a demo of its core features.
AwxScott van KalkenAWX is a web-based user interface, REST API, and task engine built on top of Ansible. It allows users to run Ansible playbooks from a source code repository on nodes using a GUI or API. AWX provides features like real-time playbook output, push button deployment, authentication methods, projects/jobs/workflows, security, notifications, logging, and scheduling. It uses a full RBAC security model and can be installed on Docker, Kubernetes, or OpenShift with default containers for its components like Postgres, RabbitMQ, and Memcached.
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.
Ansible presentationSuresh KumarThis document discusses repetitive system administration tasks and proposes Ansible as a solution. It describes how Ansible works using agentless SSH to automate tasks like software installation, configuration, and maintenance across multiple servers. Key aspects covered include Ansible's inventory, modules, playbooks, templates, variables, roles and Docker integration. Ansible Tower is also introduced as a GUI tool for running Ansible jobs. The document recommends Ansible for anyone doing the same tasks across multiple servers to gain efficiencies over manual processes.
Automation with ansibleKhizer NaeemA hands-on workshop on "Automation with Ansible". Starting from installing and setting up Ansible to managing servers and application deployments.
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법Open Source ConsultingKubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
AnsibleVishal YadavIntroduces Ansible as DevOps favorite choice for Configuration Management and Server Provisioning. Enables audience to get started with using Ansible. Developed in Python which only needs YAML syntax knowledge to automate using this tool.
ansible why ?Yashar EsmaildokhtThis document contains information about the sys/net/sec admin Yashar Esmaildokht, including their contact information and websites. It then provides a brief overview of the open-source automation tool Ansible, describing its main features and uses for configuration management, application deployment, and cloud provisioning. Requirements and versions of Ansible are listed. The document concludes with examples of Ansible concepts including playbooks, tasks, modules, variables, and host inventory organization.
실전 서버 부하테스트 노하우 YoungSu SonBestcon 2019에 발표한 웹서버 성능 테스트 실전 노하우 자료입니다.
테스트 케이스 생성부터, 테스트 전략, 데이터 해석 (APM, 인프라 모니터링), 클라우드에서 주의할 사항등 도움이 될만한 내용들만 간추려 전달합니다.
부하 테스트시 어니컴을 불러주세요
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi오픈소스 WAS 모니터링 솔루션인 Scouter에 대한 간략한 설치가이드입니다. JBoss 기준으로 작성되었으며, JBoss 관련된 스크립트는 github.com/OpenSourceConsulting/jboss-eap-6-scripts에서도 확인하실 수 있습니다.
Ansible presentationKumar YYesterday I gave presentation on Ansible and it was successful . It give basic understanding of playbook and an example implementation of jboss application from scratch
Node.js 기본Han Jung Hyunnode.js 의 기본이 되는 부분을 정리해놓은 자료 입니다.
시중에 나와있는 서적과 인터넷 자료를 분석 후 기본이 되는 부분만 정리해놓았습니다.
이전 업데이트와 다르게 비동기 모듈, express, heroku 설치, 디버깅 방법이 추가되었습니다.
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude KimGoogle Cloud Platform 인 Compute Engine에 Docker 를 올리기.
Docker에 JVM 소프트웨어인 JIRA 및 Confluence를 설치하고 실제 서비스단계까지의 구성은 어떻게 하는지에 대한 설명입니다.
[온라인교육시리즈] 네이버 클라우드 플랫폼 init script 활용법 소개(정낙수 클라우드 솔루션 아키텍트)NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼네이버 클라우드 플랫폼의 init script는 서버 생성 후, 최초 1회 실행되는 스크립트입니다. 해당 스크립트를 서버 생성 후 실행하도록 구성을 하면, 서버 생성 후 추가 설치가 필요한 패키지들을 서버 생성 시에 자동으로 설치되도록 설정이 가능합니다. 해당 init script가 어떻게 동작하는지, 그리고 실무에서 어떻게 적용하여 이 가능한지 설명해드립니다 | 네이버 클라우드 플랫폼의 init script는 서버 생성 후, 최초 1회 실행되는 스크립트입니다. 해당 스크립트를 서버 생성 후 실행하도록 구성을 하면, 서버 생성 후 추가 설치가 필요한 패키지들을 서버 생성 시에 자동으로 설치되도록 설정이 가능합니다. 해당 init script가 어떻게 동작하는지, 그리고 실무에서 어떻게 적용하여 이 가능한지 설명해드립니다
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine요즘 규모에 상관 없이 서버를 운영하는 웹서비스 업체에서는 도커라는 주제가 화두입니다. 오히려 발빠른 개발자나 운영자들은 이미 도커를 이용하여 서비스를 운영하고 있지요. 본 세션은 도커의 기술적인 내용 보다는 사용자 입장에서 알아야 할 내용을 중심으로 구성됩니다.
Ngrok을 이용한 Nginx Https 적용하기.pptxwonyong hwangNgrok을 이용한 Nginx Https 적용하기
- centos7 환경에서 Let's encrypt로 인증서 발급
- 인증서를 nginx 에 적용
- ngrok을 이용하여 외부 도메인과 연결
Django로 배우는 쉽고 빠른 웹개발 study 자료Han Sung Kim9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
[Next-Gen ITSM | Atlassian이 제시하는 ITSM 혁신] 01. Gen Next ITSM_김윤희.pdfOpen Source Consulting2025년 3월 11일 [Next-Gen ITSM | Atlassian이 제시하는 ITSM 혁신] 세미나에서 발표된 아틀라시안 김윤희 부장님의 첫 번째 세션 발표 자료입니다.
[발표 자료] 시각화로 전략을 실현하는 스마트 워크플로우 with 먼데이닷컴.pdfOpen Source Consulting먼데이닷컴 한국 총괄 kevin park 님과 함께 진행한 오픈소스컨설팅의 웨비나, '시각화로 전략을 실현하는 스마트 워크플로우'의 발표 자료입니다. 협업툴을 활용하여 각 팀의 업무를 시각화하고, 이를 통해 OKR을 전략적으로 달성할 수 있는 방향성을 고민해보실 수 있습니다.
[The Future of IT] 1. AI 시대의 일하는 방법_김대일 고문Open Source Consulting2022년 11월 세상에 등장한 챗GPT이후 시작된 AI시대는 일하는 방식을 모두 바꾸도록 강요하고 있습니다.
알리바바그룹 회장 마윈은 과거 20년간 인터넷으로 먹고 살았다면 향후 20년은 AI에서 먹거리를 찾을 수 밖에 없는 AI시대가 도래 했고, 이 시대의 특징은 얼마 전까지 디지털 기술이 가치 사슬의 일부를 대체 했지만 이제는 AI가 가치 사슬의 전부를 대체 할 것이라고 정의했습니다. 일례로, 영화 아이언맨의 AI 비서 자비스와 같은 AI Agent가 실제로 이미 기업과 개인에 적용되어 인간에게 많은 영향을 끼치고 있습니다.
이런 AI 시대에는 시장과 고객의 빠른 변화에 민첩하게 대응 할 수 있는 애자일 방식으로의 전환이 필요하고, 새 시대에서 요구하는 스킬셋과 마인드셋의 전환이 필요한 때입니다.
[The Future of IT] 2. 조직 목표 Align 및 전사 협업 확장_한진규 부사장Open Source Consulting최근 기업들이 직면한 주요 과제로 낮은 생산성, 목표 기반 업무 추적, 핵심 인재 유지 등이 부각되고 있습니다. 이에 따라 조직 목표를 효과적으로 정렬(Align)하고 협업을 확장하는 ‘System of Work’ 개념이 주목받기 시작했습니다.
이 시스템은 기술과 비즈니스 팀을 연결하여 업무 효율성을 극대화하고, 데이터 기반 의사 결정을 강화하는 것이 핵심입니다. 특히, Atlassian 등의 솔루션을 활용해 업무 계획 및 추적, 협업 도구 통합, 생성형 AI 적용을 가속화하고 있습니다. 이러한 변화는 기업이 전략과 실행을 긴밀히 연결하고, 신속한 가치 실현을 가능하게 합니다. 향후 분산된 조직에서도 효과적인 목표 공유와 협업이 어떻게 핵심 경쟁력이 될지 설명합니다.
[The Future of IT] 3. AI 시대의 인프라_오픈소스를 활용한 인프라 구축 및 GPU as a Service 구현사례_김호진 상무Open Source ConsultingAI 시대의 인프라 구축과 GPU as a Service(GPUaaS) 구현 사례가 주목받고 있습니다. 오픈소스컨설팅은 Linux, Kubernetes, OpenStack 등을 활용해 고객 맞춤형 클라우드 환경을 구축하고, GPUaaS를 통해 머신러닝·AI 작업에 필요한 GPU 리소스를 효율적으로 제공합니다. 특히, MIG와 vGPU 기술을 활용해 GPU 자원을 최적화하고, OpenStack 기반의 가상화 플랫폼을 통해 다양한 인프라 환경을 지원합니다.
오픈소스컨설팅은 OIF, CNCF 재단의 프로젝트 기반으로 20여 개 고객사의 IaaS/PaaS 시스템을 구축한 경험을 바탕으로, 벤더 종속성 없는 유연한 인프라 구축과 지속적인 기술 지원을 제공합니다. 이를 통해 AI 시대의 인프라 요구에 부응하며, 오픈소스 생태계의 성장을 주도하고 있습니다.
[발표자료] 오픈소스 기반 클라우드 네이티브 애플리케이션 구축 방안 (feat. Kubernetes)Open Source Consulting[RedHat OpenShift to Kubernetes, 진짜 오픈소스로!]
멀티∙하이브리드 클라우드의 확산, 클라우드 네이티브 애플리케이션 증가, 그리고 데이터 및 보안
관리의 필요성 등의 다양한 이유로 PaaS(Platform as a Service) 도입이 가속화되고 있으나,
이에 반해 대표적인 외산 상용 솔루션 RedHat OpenShift는 상대적으로 비싼 가격과
높은 벤더 의존성으로 국내 기업이 도입하기에는 큰 부담이 되는 것이 사실입니다.
아래 영상을 통해 클라우드 네이티브 환경 구축에 왜 오픈소스를 활용해야 하는지,
상용 솔루션과 오픈소스 솔루션을 비교해보고, 특정 벤더 종속성에서 탈피하면서
동시에 비용 절감을 위한새로운 대안을 찾아보시기 바랍니다.
[202412 SAFe Meetup] SAFe Transfomration JourneyOpen Source Consulting[SAFe 성공 사례] 글로벌 기업 포르쉐와 레고는 어떻게 애자일 전환에 성공했을까요? 애자일 전환의 여정과 성과를 확인해 보세요.
Scaled Agile Framework®(확장된 애자일 프레임워크)는 엔터프라이즈 규모의 기업이 린(Lean) 및 애자일 방식을 구현하기 위한 일련의 조직 및 워크플로 패턴입니다. 글로벌 애자일 프레임워크 시장의 53%를 점유하며 전 세계에서 가장 많이 사용하고 있는 엔터프라이즈 애자일 프레임워크입니다
[워크숍] Get to know AI, Meet your new teammate!Open Source Consulting12월 4일 진행된 워크숍, 'Get to know AI, Meet your new teammate!' 의 발표 자료입니다.
AI prompt engineering에 대해 궁금하시거나, Atlassian Intelligence, rovo 등, Atlassian의 신기능에 대해 궁금하셨던 분들에게도 도움이 될 수 있습니다.
[웨비나 발표자료] VMware 정책 변화 대응 - 왜 오픈소스 기반 클라우드 네이티브 인프라로 가야하는가?Open Source Consulting"왜 오픈소스 기반 클라우드 네이티브 인프라로 가야하는가?"
브로드컴의 VMware 인수로 인한 시장의 변화와 그에 따른 대응 전략과 마이그레이션 방안을 고민중이라면?
성공적인 클라우드 네이티브 전환을 위한 고려사항과 왜 오픈소스 기반 인프라로 전환해야 하는지 알아보고, 특정 벤더 종속성에서 탈피하면서 동시에 비용 절감을 위한 새로운 대안을 찾아보시기 바랍니다.
[The future of Teamwork] Atlassian Intelligence가 적용된 ITSM 시스템 데모Open Source Consulting2024년 9월 26일 아틀라시안 고객사를 대상으로 진행한 '아틀라시안을 통한 팀워크 혁신(The future of Teamwork)' 세미나에서 진행된 세션의 발표 자료입니다.
3. - Internal Use Only -
Configuration Management System
• Provision
• Orchestration
• System 설정을 code로 관리
• 멱등성(indempotency) - 여러 번 적용해도 결과는 항상 동일
• chef, puppet, salt, ansible
4. - Internal Use Only -
Ansible 개요
• Configuration management tool
• Open Source
• Python 기반
• Michael DeHaan 개발(Cobbler 개발자)
• Ansible. Inc는 Redhat에 인수됨
• ssh 연결
• 순차 적용
• 수백개의 모듈 제공
• Template - jinja2
• Playbook은 yaml 사용하여, syntax 이해가 쉬움
• Agentlee 방식으로 관리 호스트에 별도 작업이
필요하지 않음
• Pull-based 방식도 지원(ansible-pull - 상용)
• Twitter가 ansible로 전환
• Web 관리 UI인 ansible-tower(상용)
5. - Internal Use Only -
Not support
• 최초 OS 설치에 관여할 수 없음.
• 구성 변화는 멱동으로 관리할 수 있으나, 모니터링은 할 수 없음.
• 파일 변경 추적 X
6. Pull-based(chef, puppet) Push-based(ansible)
Agent Agentless
1. Admin : Configuration management script 변경
2. Admin : 변경 파일을 서버로 업로드
3. Agent : 일정 시간마다 서버로 접속하여 변경이력 확인
4. Agent : 새롭게 변경된 파일 다운로드
5. Agent : 변경된 파일 실행
1. Admin : playbook(Configuration Management script) 변경
2. Admin : 새로운 playbook 실행
3. Ansible on Control : 서버로 접속하여 변경된 playbook 실행
Pull-based & Push-based
Pull-based 방식이 큰 규모의 서버 관리 및 신규 서버 추가에 더 적합하다고
하지만, ansible을 이용하여 수천대 서버를 관리하고 있으며, 서버 추가 및 삭제도 용의
8. - Internal Use Only -
구성요소
• Inventory : 관리 대상 서버 리스트
• Modules : host에 특정 action을 수행하는 패키지화된 sctips
• play-book : 변수 및 task를 관리 호스트에 수행하기 위해 yaml 문법으로 정의된 파일
• plug-in : 확장 기능(email, logging etc)
• Custom module : 사용자가 직접 작성한 모듈
9. - Internal Use Only -
Modules
• Package mgmt : apt-get, yum, package
• Commands : shell, command
• File 관련 : file, copy
• Template 관련 : template
• Download : get_url, git, subversion
• Server info : setup
• Service 관리 : service
• Cloud 관리 : aws, openstack
10. - Internal Use Only -
연결 플러그인
• ssh, paramiko – ssh 연결
• local – localhost 연결
• winrm – windows 연결
• docker – docker에 연결
11. - Internal Use Only -
설치
[설치방법 1 - 패키지]
# yum install epel-release
# yum install ansible
[설치방법 2 – pip]
# yum install autoconf gcc python-devel libffi-devel openssl-devel
# pip install ansible
[update]
# yum update ansible
# pip install ansible --upgrade
관리 호스트 : python 2.6 or 2.7 이상
* 관리 대상 호스트 : python 2.4은 python-simplejson python 2.5 이상은 필요 없음
12. - Internal Use Only -
디렉토리 구성
/usr/lib/python2.7/site-packages/ansible/modules
Core Modules 위치
/usr/lib/python2.7/site-packages/ansible
설치 디렉토리 PATH – CentOS7 기준
/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py
Ping Module 위치
/usr/lib/python2.7/site-packages/ansible/modules/commands/shell.py
Shell Module 위치
13. - Internal Use Only -
설정 – ansible.cfg
# vi ansible.cfg
[defaults]
inventory = hosts
host_key_checking = False
remote_user = ansible
log_path=~/ansible.log
no_log=False
no_target_syslog=False
forks = 20
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
• inventory : inveroty 파일 or 디렉토리 경로
• host_key_checking : Host_key(~/.ssh/known_host) 체크
• remote_user : ssh 접속 시 사용할 user
• log_path : ansible 실행 로그 파일 경로
• no_log :
• no_target_syslog : 관리 host의 syslog에 ansible 로그 여부
• forks : 동시 접속 노드 수(default : 5)
• privilege_escalation : sudo 관련 설정
14. - Internal Use Only -
ansible.cfg 순서
ANSIBLE_CONFIG=<ansible.cfg PATH>
기본 경로
홈 디렉토리
현재 디렉토리
환경 변수
15. - Internal Use Only -
설정 - Inventory file
• Ansible에서 관리하는 호스트 정의
• 호스트 인벤토리 기본 위치 : /etc/ansible/hosts
• --inventory PATH
위 옵션으로 임의 경로의 파일을 지정
호스트 그룹 이름
연결 방법, ssh 접속 유저, ssh 패스워드 설정
특정 호스트 그룹의 변수 설정
호스트 그룹을 서브그룹으로 다시 그룹핑
19. - Internal Use Only -
ansible 실행
Ansible 수행 시, 실행 프로세스
/usr/bin/ssh
-o ForwardX11 no
-o ForwardAgent no
-o PermitLocalCommand no
-o ClearAllForwardings yes
-o batchmode yes -C
-o ControlMaster=auto
-o ControlPersist=60s
-o StrictHostKeyChecking=no
-o KbdInteractiveAuthentication=no
-o PreferredAuthentications=gssapi-with-
mic,gssapi-keyex,hostbased,publickey
-o PasswordAuthentication=no
-o User=centos
-o ConnectTimeout=10
-o ControlPath=/root/.ansible/cp/d8ac695b15
-o Protocol 2
-s -- 192.168.2.131 sftp
ansible_ssh_user
ansible_connection
ansible.cfg 및 inventory 설정에 따라 ‘–o ‘에 설정되는
ssh-client 옵션들이 변경됨.
- ansible_connection : ssh 세션 재활용
- ansible_python_interpreter : host의 python path가
/usr/bin/python이 아닌 경우 설정 필요
20. - Internal Use Only -
YAML
Json과 비슷한 포맷
--- : dash 3개는 document의 시작을 알림
# : 주석
String : 따음표를 사용하지 않아도 됨.
단, 변수를 표현할 때 사용
ex) {{ 변수 }}
YAML JSON
List - Value1
- Value2
[
“Value1”,
“Value2”
]
Dictionary key1: value1
key2: value2
{
“key1”: “value1”,
“key2”: “value2”
}
Line Folding key1: >
long values1 go on,
long values2 go on
Key2: short value
{
“key1: “long values1 go on,
long value2 go on”,
“key2”: “short value”
}
22. - Internal Use Only -
Playbook
• ansible 배포에 내용(plays)을 정의한 파일
• yaml 문법
* Play : host에 접속하여 action을 수행하는 것
---: yaml 문법 처음
name: 해당 play에 대한 설명(주석), optional
become: sudo 사용 지정
hosts: Inventory의 ‘loadbalancer’ group을 대상으로 지정
tasks: host에 접속하여 해당 module 및 arg에 맞게 실제 action 수행하는
play를 list로 정의
- yum을 사용하여 패키지 설정, yum cache 업데이트
- service: systemd로 서비스 시작, enabled
- copy: 설정 파일 복사, permission 644
- template: jinja2 작성된 tempate 파일 복사, permission 644
- file: file 삭제
handlers: tasks에 정의된 play 중, notify에 의해 호출될 service 모듈로 정의된
handler, 서비스 재시작 등
service : nginx 재시작 handler
23. ansible 동작 순서
1. Playbook에 정의된 task를 수행하기 위한 python script 생성
2. 해당 script를 대상서버로 복사
3. 해당 script 실행
4. 모든 host에서 script 실행이 완료될 때까지 기다림
24. - Internal Use Only -
Playbook & Shell
playbook
- name: Ensure NTP is installed.
yum: name=ntp state=present
Shell script
if ! rpm -qa | grep -qw ntp; then
yum install ntp
fi
playbook Shell script
- name: Ensure NTP is running
service: name=ntpd state=started enabled=yes
if ps aux | grep -v grep | grep "[n]tpd" > /dev/null
then
echo "ntpd is running." > /dev/null
else systemctl start ntpd.service > /dev/null
echo "Started ntpd.”
fi
systemctl enable ntpd.service
출처 : “ansible for devops” by Jeff Geerling, 2015
25. - Internal Use Only -
Jinja2
Jinja2
- Python Template 언어
- 템플릿 적용을 위해 사용
- 참고 : http://jinja.pocoo.org/docs/dev/templates/
- loop statement
- If statement(조건이 만족할 때만 내부 로직 수행)
26. - Internal Use Only -
명령어
# ansible-playbook
Ex) # ansible-playbook <play-book file>
[Task 리스팅]
# ansible-playbook --list-tasks <play-book file>
27. - Internal Use Only -
실행
ansible-playbook Options :
-i --invertory=host-file
-v --verbose
-e --extra-vars=VARS
-f --forks=NUM
-c --connection=TYPE
--check : run in Check Mode
[Syntax check]
# ansible-playbook –syntax-check <playbook.yml>
[dry run]
# ansible-playbook –C <playbook.yml>
28. - Internal Use Only -
ansible-facts
• Tasks 수행 전, 서버의 정보
수집(hostname, IP, Mac etc)
• 변수로 사용 가능
• gather_facts 사용 X
# vi playbook.yml
자주 사용되는 facts
ansible_os_family
ansible_hostname
ansible_memtotal_mb
- hosts: test
gather_facts: no
29. - Internal Use Only -
setup
• Cache enable
[defaults]
gathering = smart
fact_caching_timeout = 86400
fact_caching = jsonfile
fact_caching_connection = /tmp/ansible_fact_cache
# redis 사용 설정
#fact_caching = redis
# memcached 사용 설정
#fact_caching = memcached
30. - Internal Use Only -
file
• 파일, 디렉토리, 링크 파일 생성
• path: 파일 및 디렉토리 PATH
• state: 대상 PATH의 타입
- link : 링크 파일
- directory : 디렉토리
- absent : 삭제
• mode: 파일 퍼미션(8진수 표현을 위하 ‘0’을 앞에 붙여야 함
31. - Internal Use Only -
copy
• remote 서버로 복사를 위한 파일
• src: 소스 파일 위치
• dest: 대상 서버의 복사될 위치
• mode: 파일 퍼미션(8진수 표현을 위하 ‘0’을 앞에 붙여야 함
32. - Internal Use Only -
templates
• Jinja2 작성
• File Contents 변경이 내부 로직에 따라 자동으로 이루어지는 파일
33. - Internal Use Only -
with_items
• Iteration
• 2개 이상의 변수를 리스트로 선언, 반복문으로 사용 가능
35. - Internal Use Only -
handlers
• notify 지시자를 사용하는 task에서 해당 module을 실행을 완료한 후,
notification 발생(notify에 지정된 handler 호출)
• notify에 지정된 ‘handler 이름’으로 handlers에 정의된 handler를 찾아
task(restarting services) 수행
36. - Internal Use Only -
vars
• playbook or template에서 사용한 변수 정의
vars 지시자
Playbook 내부의 vars 지시자에 설정
ex)
vars_files 변수가 설정된 개별 파일을 include하는 설정
roles의 defaults
Role별 변수 설정
- 설정 위치 :
roles/<role name>/defaults/main.yml
- roles/<role name>/vars/main.yml
inventory에 설정
Host 및 host group별 변수 설정
- 설정 위치 :
Inventory 파일
group_vars
Host group별 변수 설정
- 설정 위치 :
file - group_vars/<group name>
directory - group_vars/<group name>/xxx
host_vars
Host 별 변수 설정
- 설정 위치 :
file - host_vars/<host name>
directory - host_vars/<host name>/yyy
38. - Internal Use Only -
wait_for
• 특정 서비스 데몬의 실행 후에 해당 play을 진행하기 위한 지시자
• host: 서비스 확인할 host 정보
• port: open 상태를 확인할 Port
• search_regex : 파일이나 soket의 문자 매칭에 사용
39. - Internal Use Only -
local_action
• control host 자신에서 모듈 실행하기 위함
• delegate_to : play를 다른 host에서 실행
40. - Internal Use Only -
기타
• ignore_errors : error로 playbook 중단 회피
• serial: 동시에 접속 및 play 수행할 host 수 지정 설정
• max_fail_percentage: 최대 실패 비율 초과일 경우, playbook 실행 중단
• run_once: 1회만 실행
• changed_when, failed_when: 특정 조건일 때 상태
• set_facts : playbook 내에 새로운 변수 설정(register로 받은 결과를 변수 저장)
• hostvars: 특정 호스트만 사용할 변수 선언
{{ hostvars['db.osci.kr'].ansible_eth1.ipv4.address }}
41. - Internal Use Only -
roles
• playbook을 여러개의 작은 단위로 분리
• Directory 별로 구분
• playbook 재사용 가능
• playbook 중복 사용 제거
• 특정 기능 구현을 위한 playbook의 묶음
[Create roles]
# mkdir -p nodejs-app/roles/nodejs/{meta,tasks,defaults,vars}
# vi nodejs-app/roles/nodejs/meta/main.yml
--------------------
---
dependencies: []
--------------------
• role skeleton directory 생성
42. - Internal Use Only -
Single playbook to role
playbook Role 변경
Playbook – role 사용
43. - Internal Use Only -
기타
• pre-tasks: role 실행 시작 전 수행할 play 정의
• post-tasks: role 실행 완료 후 수행할 play 정의
• dependencies: 해당 role이 함께 실행될 role 정의