SlideShare a Scribd company logo
1 of 52
실전! 시스템 관리자를 위한 Ansible
IT Evolution
Increasing scale and complexity means
we need admin automation
Opscode gets more venture dough for its Chef
From - http://goo.gl/dLcjS
WHAT IS ANSIBLE AUTOMATION?
Global Google Trends : Ansible vs. Puppet vs. Chef
Ansible 비교
ANSIBLE FEATURES
Ansible 에서의 자동화의 흐름
Push Based vs. Pull Based
Ansible Core & Ansible Tower
• Ansible AWX
• Ansible Tower의 오픈소스 Upstream 버전
• GUI 관리 환경 제공
Ansible 로 자동화할 수 있는 것
프로비저닝
Ansible 도입 기대효과
Ansible 에 의한 오토메이션
• 멱등성 (Idempotency)
• 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질
• 여러 번 적용해도 결과는 바뀌지 않는다.
• 바뀌는 것이 없으면 당연히 배포되어도 바뀌지 않는다.
• 바뀌는 부분이 있으면 그 부분만 반영된다.
• Ansible 멱등성
• 대부분이 멱등성을 제공한다.
• 멱등성을 제공하지 부분(모듈)
• shell, command, file module
Idempotency(멱등성)
Ansible 핵심 컴포넌트
Ansible 사용 방법
ansible-playbook 커멘드 실행
Inventory 파일
Playbook 예제
YAML 형식이란
태스크(Task)란
• 정형화 된 작업의 열거
• 태스크는 관련 지을 수 있었던 모듈을 호출
• 모듈은 Python나 Bash로 기술되고 있다
tasks:
- name: check install httpd
yum: name=httpd state=latest
모듈(Module)이란
• 특정 목적을 위해 작성된 Ansible 백엔드
• 주로 Python 으로 구현
• 대표적인 모듈들
• 패키지 관리
• yum, apt
지정 패키지( 및 의존 패키지) 설치
• 서비스 제어
• service
서비스 시작/정지 등
• 파일 처리
• file, copy, fetch, template
파일 배포(copy, template), 파일 수집(fetch) 등
• 커맨드 실행
• command, shell
외부 커맨드 실행과 그 출력 결과 보고 등
• 소스 코드 관리: git, subversion
Ansible Module
• Module : 대상 호스트에서 실행하는 라이브러리들
• 2,000 개 이상의 Module을 제공
• Ansible 커뮤니티에서 지속적으로 새로운 Module 공개
• 태스크 섹션 전에 vars: 섹션으로 변수를 정의
변수 정의(vars)
vars:
hello: Hello
tasks:
- name: Hello World
debug: msg=”{{ hello }} Ansible”
• 태스크에서 모듈명 다음 줄에서“when:” 을 기술하여 모듈의 실행 조건을 정의
• 지역 변수나 vars 정의된 변수에 대해 등호와 부등호를 이용하여 조건식이 true의 경우
에 실행
조건 분기 실행(when)
tasks:
- name: install Apache Web server
yum: name=httpd state=latest
when: ansible_os_family == 'RedHat'
- name: install Apache Web server
apt: name=apache2 state=latest
when: ansible_os_family == 'Debian' or 
ansible_os_family == 'Ubuntu'
• 태스크에서 모듈명의 다음 줄에서 “with_000:”으로 기술하여 모듈에 {{ item }}
변수를 전달
루프 실행(Loops)
 with_items
 with_nested
 with_dict
 with_lines
 with_indexed_items
 with_ini
 with_flattened
 with_file
 with_fileglob
 with_first_found
 with_together
 with_subelements
 with_random_choice
 with_sequence
• YAML 파일 뿐만 아니라 모든 파일에서 활용 가능
• 일반적으로 파일 확장자명을 .j2로 함
• Index.php.j2
• mysql.conf.j2
• Template task 일 때 jinja2가 적용 가능(copy task는 적용 안됨 )
템플릿
tasks:
- name: deploy my.cnf
template: src=my.cnf.j2 dest=/etc/my.cnf
filename: my.cnf.j2
[mysqld]
user = {{ mysql_user }}
port = {{ mysql_port }}
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysqld/mysqld.pid
• 설치
• OS 패키지 설치 : yum, apt-get, zypper 등
• Language 패키지 설치 : npm, bower, gem, pip 등
• 다운로드
• get_url, wget, git, subversion, fetch 등
• 환경설정 파일 배포
• copy, template
• 실행
• shell, command, task, script
• 기타
• Cloud, Clustering, Database, Crypto, Network, Remote Management,
Windows등 다양한 모듈을 제공
Ansible이 할 수 있는 일
Ansible Playbook을 이용한 Apache 설치
---
-name : install apache
hosts : apache
user: root
tasks :
- name : install httpd
yum: name=httpd state=latest
- name : start apache service
service: name=httpd state=running
apache_setup.
yml
/etc/ansible/hosts
[apache]
web[01:03].opennaru.com
192.168.11.3
$ ansible-playbook apache_setup.yml
Playbook
Play
Task Handler
Module
Inventory
Install
Apache 설정 파일 변경
---
-name : install apache
hosts : apache
user: root
tasks :
- name : install httpd
yum: name=httpd state=latest
- name : copy httpd.conf file
template: src=httpd.conf
dest=/etc/httpd/conf/httpd.conf
- name : start apache service
service: name=httpd state=running
apache_setup.yml
Playbook
Play
Template Module
Apache 설정 파일 변경 – 환경변수
ServerRoot "{{ SVC_HTTPD_DIR }}"
#
# Listen: Allows you to bind Apache to
specific IP addresses and/or
# ports, instead of the default. See also
the <VirtualHost>
# directive.
#
Listen {{ HTTPD_PORT }}
httpd.conf Templates
환경변수
환경변수
Ansible 제어문
- name: add users
user: name={{ item }} state=present groups=user
with_items:
- open
- naru
- admin
Looping
- name: install apache
apt: name=httpd state=latest
when: ansible_distribution == ‘Ubuntu’
- name: install apache
yum: name=httpd state=latest
when: ansible_distribution == ‘RedHat’
Conditional
- include: test/main.yml
Include
Array Loop
Conditional
Include
Ansible Ad-hok Task 실행
$ ansible <host-pattern> [options]
$ ansible 192.168.11.3 -m ping -u root --ask-pass
SSH password:
192.168.23.14 | success >> {
"changed": false,
"ping": "pong"
}
특정 Host에 명령 실행
$ ansible web01.opennaru.com -m command -a ‘/sbin
/reboot’ --ask-pass
특정 Host에 명령 실행
Ansible 을 통한 IT 인프라 운영 자동화
Ansible 자동화 추진 방안
Ansible 을 통한 작업 계획서 대체
운영 작업 위임 (서비스 화)
Ansible 을 통한 전체 작업의 효율화
애플리케이션을 위한 인프라 제공
OPENMARU APM - 미들웨어 설치/구성/튜닝 자동화
실제 Web / WAS 구성 – 다양한 서비스
Machine #1
admin11
(+100)
front11
(+200)
test11
(+300)
Machine #2
admin21
(+100)
front21
(+200)
test21
(+300)
Machine #3
front31
(+100)
test31
(+200)
admin
230.10.1.1
front
230.10.2.1
test
230.10.3.1
Apache +
mod_jk / mod_cluster
admin
Virtual Host
front test
Apache +
mod_jk / mod_cluster
admin
Virtual Host
front test
JBoss EWS(Apache)
JBoss EAP 6.4.0/7.0.0
Domain Controller
Machine #3 Machine #4
OPENMARU APM – Ansible playbook 명령 정의
package version component command user password
JBoss EAP
Domain Mode
JBoss EAP
Standalone Mode
JBoss EWS
Tomcat
Apache
Tomcat
JBoss EAP
HTTPD
JBoss EWS2
HTTPD
Apache
HTTPD
6.4.0
7.1.0
7.2.0
JBoss Data Grid
all
conf
init_d
packages
sys
setup
start
stop
report
ping
nettest
deploy
cleanup
root password
설치할 제품선택
GUI 설치구성 화면 WAS 인스턴스 구성
제품 버전선택
설치 구성요소 설치/구성 명령 사용자/패스워드
제품이나 서비스에 관한 문의
콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 )
전자메일:sales@opennaru.com
02.실전! 시스템 관리자를 위한 Ansible

More Related Content

What's hot

[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansibleOmid Vahdaty
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with AnsibleAnas
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleCoreStack
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationJohn Lynch
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)rootfs32
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationKumar Y
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Simplilearn
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWSVMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWSAmazon Web Services Korea
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) 동현 김
 

What's hot (20)

ansible why ?
ansible why ?ansible why ?
ansible why ?
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
Ansible 101
Ansible 101Ansible 101
Ansible 101
 
Introduction to ansible
Introduction to ansibleIntroduction to ansible
Introduction to ansible
 
Ansible
AnsibleAnsible
Ansible
 
Ansible
AnsibleAnsible
Ansible
 
Network Automation with Ansible
Network Automation with AnsibleNetwork Automation with Ansible
Network Automation with Ansible
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Ansible - Introduction
Ansible - IntroductionAnsible - Introduction
Ansible - Introduction
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Configuration Management in Ansible
Configuration Management in Ansible Configuration Management in Ansible
Configuration Management in Ansible
 
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
Ansible Tutorial For Beginners | What Is Ansible And How It Works? | Ansible ...
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWSVMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
VMware on AWS를 통한 하이브리드 클라우드 구축 적용 - 홍정진, AWS Partner SA/ VMC on AWS
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
 

Similar to 02.실전! 시스템 관리자를 위한 Ansible

[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용SK Telecom
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Opennaru, inc.
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정Seonghun Kang
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치Aiden Seonghak Hong
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석Amazon Web Services Korea
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdfHeeJung Chae
 
IAC on OpenStack(feat.ansible)
IAC on OpenStack(feat.ansible)IAC on OpenStack(feat.ansible)
IAC on OpenStack(feat.ansible)Opennaru, inc.
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 
Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Leo Song
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축JoongSeob Kim
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bashpyrasis
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 

Similar to 02.실전! 시스템 관리자를 위한 Ansible (20)

03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정초보자를 위한 AWS EC2, RDS 설정
초보자를 위한 AWS EC2, RDS 설정
 
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
RHive tutorial supplement 1: RHive 튜토리얼 부록 1 - Hadoop 설치
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf[Ansible] Solution Guide V0.4_20181204.pdf
[Ansible] Solution Guide V0.4_20181204.pdf
 
IAC on OpenStack(feat.ansible)
IAC on OpenStack(feat.ansible)IAC on OpenStack(feat.ansible)
IAC on OpenStack(feat.ansible)
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)Red hat ansible engine 2.7 release(Korean version)
Red hat ansible engine 2.7 release(Korean version)
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
Node.js 기본
Node.js 기본Node.js 기본
Node.js 기본
 
Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축Elastic beanstalk 배포 환경 구축
Elastic beanstalk 배포 환경 구축
 
One-day-codelab
One-day-codelabOne-day-codelab
One-day-codelab
 
Dockerfile과 Bash
Dockerfile과 BashDockerfile과 Bash
Dockerfile과 Bash
 
Eclipse RCP 1/2
Eclipse RCP 1/2Eclipse RCP 1/2
Eclipse RCP 1/2
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 

More from Opennaru, inc.

머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해Opennaru, inc.
 
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처Opennaru, inc.
 
컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계Opennaru, inc.
 
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?Opennaru, inc.
 
컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점Opennaru, inc.
 
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?Opennaru, inc.
 
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모Opennaru, inc.
 
가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모Opennaru, inc.
 
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모Opennaru, inc.
 
마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모Opennaru, inc.
 
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합Opennaru, inc.
 
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모Opennaru, inc.
 
자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모Opennaru, inc.
 
자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모Opennaru, inc.
 
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모Opennaru, inc.
 
PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모Opennaru, inc.
 
PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모Opennaru, inc.
 
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모Opennaru, inc.
 
16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pub16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pubOpennaru, inc.
 
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들Opennaru, inc.
 

More from Opennaru, inc. (20)

머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
머신 중심에서 애플리케이션 중심으로 불변의 인프라스트럭처 개념 이해
 
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
쿠버네티스를 이해하려면 반드시 알아야 하는 불변의 인프라스트럭처
 
컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계컨테이너 기술의 역사와 발전 단계
컨테이너 기술의 역사와 발전 단계
 
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
구글은 왜 쿠버네티스를 오픈소스로 공개했을까요?
 
컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점컨테이너 기술과 가상화 기술의 주요한 차이점
컨테이너 기술과 가상화 기술의 주요한 차이점
 
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
컨테이너 개념의 이해 - 물류 분야의 컨테이너와 다른점은?
 
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
VM과 컨테이너 상에서 Apache & Tomcat 설치, 실행 그리고 배포 데모
 
가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모가상화 기술 VS 컨테이너의 집적도 비교 데모
가상화 기술 VS 컨테이너의 집적도 비교 데모
 
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
PaaS 환경에서 기업 메신저 서비스 10분 만에 구축하기 데모
 
마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모마이크로서비스 아키텍처 (MSA) 데모
마이크로서비스 아키텍처 (MSA) 데모
 
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
클라우드 환경에서의 모니터링의 특징과 구현 방안 로그통합
 
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
컨테이너 상에서의 서비스 무중단 배포 방법 비교 데모
 
자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모자동 확장 자원 풀 – Auto Scaling 데모
자동 확장 자원 풀 – Auto Scaling 데모
 
자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모자동 장애 복구 데모 – Auto Healing 데모
자동 장애 복구 데모 – Auto Healing 데모
 
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
멀티 애플리케이션 환경에서 부하에 따른 자동 자원 할당 데모
 
PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모PaaS 환경에서 전자 정부 프레임워크 배포 데모
PaaS 환경에서 전자 정부 프레임워크 배포 데모
 
PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모PaaS 환경에서 워드프레스 구축하기 데모
PaaS 환경에서 워드프레스 구축하기 데모
 
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모PaaS 환경에서 다중 사용자를 위한  머신 러닝 플랫폼 구축 데모
PaaS 환경에서 다중 사용자를 위한 머신 러닝 플랫폼 구축 데모
 
16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pub16. understanding and implementing msa concepts pub
16. understanding and implementing msa concepts pub
 
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
개발자가 PaaS 환경에서 반드시 알아야 하는 기술들
 

02.실전! 시스템 관리자를 위한 Ansible

  • 3. Increasing scale and complexity means we need admin automation Opscode gets more venture dough for its Chef From - http://goo.gl/dLcjS
  • 4.
  • 5.
  • 6.
  • 7. WHAT IS ANSIBLE AUTOMATION?
  • 8. Global Google Trends : Ansible vs. Puppet vs. Chef
  • 12. Push Based vs. Pull Based
  • 13. Ansible Core & Ansible Tower • Ansible AWX • Ansible Tower의 오픈소스 Upstream 버전 • GUI 관리 환경 제공
  • 14. Ansible 로 자동화할 수 있는 것 프로비저닝
  • 16. Ansible 에 의한 오토메이션
  • 17. • 멱등성 (Idempotency) • 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질 • 여러 번 적용해도 결과는 바뀌지 않는다. • 바뀌는 것이 없으면 당연히 배포되어도 바뀌지 않는다. • 바뀌는 부분이 있으면 그 부분만 반영된다. • Ansible 멱등성 • 대부분이 멱등성을 제공한다. • 멱등성을 제공하지 부분(모듈) • shell, command, file module Idempotency(멱등성)
  • 18.
  • 19.
  • 26. 태스크(Task)란 • 정형화 된 작업의 열거 • 태스크는 관련 지을 수 있었던 모듈을 호출 • 모듈은 Python나 Bash로 기술되고 있다 tasks: - name: check install httpd yum: name=httpd state=latest
  • 27. 모듈(Module)이란 • 특정 목적을 위해 작성된 Ansible 백엔드 • 주로 Python 으로 구현 • 대표적인 모듈들 • 패키지 관리 • yum, apt 지정 패키지( 및 의존 패키지) 설치 • 서비스 제어 • service 서비스 시작/정지 등 • 파일 처리 • file, copy, fetch, template 파일 배포(copy, template), 파일 수집(fetch) 등 • 커맨드 실행 • command, shell 외부 커맨드 실행과 그 출력 결과 보고 등 • 소스 코드 관리: git, subversion
  • 28. Ansible Module • Module : 대상 호스트에서 실행하는 라이브러리들 • 2,000 개 이상의 Module을 제공 • Ansible 커뮤니티에서 지속적으로 새로운 Module 공개
  • 29. • 태스크 섹션 전에 vars: 섹션으로 변수를 정의 변수 정의(vars) vars: hello: Hello tasks: - name: Hello World debug: msg=”{{ hello }} Ansible”
  • 30. • 태스크에서 모듈명 다음 줄에서“when:” 을 기술하여 모듈의 실행 조건을 정의 • 지역 변수나 vars 정의된 변수에 대해 등호와 부등호를 이용하여 조건식이 true의 경우 에 실행 조건 분기 실행(when) tasks: - name: install Apache Web server yum: name=httpd state=latest when: ansible_os_family == 'RedHat' - name: install Apache Web server apt: name=apache2 state=latest when: ansible_os_family == 'Debian' or ansible_os_family == 'Ubuntu'
  • 31. • 태스크에서 모듈명의 다음 줄에서 “with_000:”으로 기술하여 모듈에 {{ item }} 변수를 전달 루프 실행(Loops)  with_items  with_nested  with_dict  with_lines  with_indexed_items  with_ini  with_flattened  with_file  with_fileglob  with_first_found  with_together  with_subelements  with_random_choice  with_sequence
  • 32. • YAML 파일 뿐만 아니라 모든 파일에서 활용 가능 • 일반적으로 파일 확장자명을 .j2로 함 • Index.php.j2 • mysql.conf.j2 • Template task 일 때 jinja2가 적용 가능(copy task는 적용 안됨 ) 템플릿 tasks: - name: deploy my.cnf template: src=my.cnf.j2 dest=/etc/my.cnf filename: my.cnf.j2 [mysqld] user = {{ mysql_user }} port = {{ mysql_port }} datadir = /var/lib/mysql socket = /var/lib/mysql/mysql.sock pid-file = /var/lib/mysqld/mysqld.pid
  • 33. • 설치 • OS 패키지 설치 : yum, apt-get, zypper 등 • Language 패키지 설치 : npm, bower, gem, pip 등 • 다운로드 • get_url, wget, git, subversion, fetch 등 • 환경설정 파일 배포 • copy, template • 실행 • shell, command, task, script • 기타 • Cloud, Clustering, Database, Crypto, Network, Remote Management, Windows등 다양한 모듈을 제공 Ansible이 할 수 있는 일
  • 34. Ansible Playbook을 이용한 Apache 설치 --- -name : install apache hosts : apache user: root tasks : - name : install httpd yum: name=httpd state=latest - name : start apache service service: name=httpd state=running apache_setup. yml /etc/ansible/hosts [apache] web[01:03].opennaru.com 192.168.11.3 $ ansible-playbook apache_setup.yml Playbook Play Task Handler Module Inventory Install
  • 35. Apache 설정 파일 변경 --- -name : install apache hosts : apache user: root tasks : - name : install httpd yum: name=httpd state=latest - name : copy httpd.conf file template: src=httpd.conf dest=/etc/httpd/conf/httpd.conf - name : start apache service service: name=httpd state=running apache_setup.yml Playbook Play Template Module
  • 36. Apache 설정 파일 변경 – 환경변수 ServerRoot "{{ SVC_HTTPD_DIR }}" # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, instead of the default. See also the <VirtualHost> # directive. # Listen {{ HTTPD_PORT }} httpd.conf Templates 환경변수 환경변수
  • 37. Ansible 제어문 - name: add users user: name={{ item }} state=present groups=user with_items: - open - naru - admin Looping - name: install apache apt: name=httpd state=latest when: ansible_distribution == ‘Ubuntu’ - name: install apache yum: name=httpd state=latest when: ansible_distribution == ‘RedHat’ Conditional - include: test/main.yml Include Array Loop Conditional Include
  • 38. Ansible Ad-hok Task 실행 $ ansible <host-pattern> [options] $ ansible 192.168.11.3 -m ping -u root --ask-pass SSH password: 192.168.23.14 | success >> { "changed": false, "ping": "pong" } 특정 Host에 명령 실행 $ ansible web01.opennaru.com -m command -a ‘/sbin /reboot’ --ask-pass 특정 Host에 명령 실행
  • 39.
  • 40. Ansible 을 통한 IT 인프라 운영 자동화
  • 42. Ansible 을 통한 작업 계획서 대체
  • 43. 운영 작업 위임 (서비스 화)
  • 44. Ansible 을 통한 전체 작업의 효율화
  • 46.
  • 47. OPENMARU APM - 미들웨어 설치/구성/튜닝 자동화
  • 48. 실제 Web / WAS 구성 – 다양한 서비스 Machine #1 admin11 (+100) front11 (+200) test11 (+300) Machine #2 admin21 (+100) front21 (+200) test21 (+300) Machine #3 front31 (+100) test31 (+200) admin 230.10.1.1 front 230.10.2.1 test 230.10.3.1 Apache + mod_jk / mod_cluster admin Virtual Host front test Apache + mod_jk / mod_cluster admin Virtual Host front test JBoss EWS(Apache) JBoss EAP 6.4.0/7.0.0 Domain Controller Machine #3 Machine #4
  • 49. OPENMARU APM – Ansible playbook 명령 정의 package version component command user password JBoss EAP Domain Mode JBoss EAP Standalone Mode JBoss EWS Tomcat Apache Tomcat JBoss EAP HTTPD JBoss EWS2 HTTPD Apache HTTPD 6.4.0 7.1.0 7.2.0 JBoss Data Grid all conf init_d packages sys setup start stop report ping nettest deploy cleanup root password 설치할 제품선택 GUI 설치구성 화면 WAS 인스턴스 구성 제품 버전선택 설치 구성요소 설치/구성 명령 사용자/패스워드
  • 50.
  • 51. 제품이나 서비스에 관한 문의 콜 센터 :02-469-5426 ( 휴대폰 : 010-2243-3394 ) 전자메일:sales@opennaru.com