Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
하나카드 – Infrastructure Automation
Ansible 소개 세션
2018년 09월
천상진 이사 / 한국 레드햇
2
Summary : Ansible은 인프라 자동화툴로, IT 인프라 전반을 관리한다
Agent 프로그램이 필요하거나, 비싼 라이선스 비용을 요구하던 자동화 배치툴과는 달리, 이해하기 쉬운 간단한 정의 언어로
인프라 구...
3
IT 자동화? 그 필요성의 대두
IT 자동화(automation)는 공장 자동화에서 시작되어 IT 시스템으로 그 범위가 확대되었다.
공장 자동화는 수년간에 걸쳐 거대한 변화를 겪었다. 자동차 제조 공장에 처음 적용된...
4
폭발적인 인프라 요소들의 증가
지난 몇 년간 우리의 서비스는 폭발적인 네트워크와 단말기의 증가에 대등하고 있습니다.
단순한 서비스 제공에서 복잡하고, 개별 고객 단위 서비스를 위한 다양한 서비스를 제공하기 위해, 다...
5
반복되는 Infrastructure 작업의 증가
중요한 구성 요소들일지라도, 단순 반복적인 Infrastructure 업무는 존재하며, 매우 중요합니다.
1인당 관리요소가 10여대를 넘는 순간부터는 중요한 업무라 할...
6
Infrastructure Automation의 대두
배치 Job 위주의 자동화를 넘어서는 Infrastructure 엔진를 직접 관리 자동화하게 되었습니다.
반복적이고, 복잡한 Infrastructure 요소를 관...
7
ANSIBLE 관심도 증가
Ansible은 가장 주목받는 오픈소스 솔루션이며, 활발히 업데이트되며, 매우 중요한 IT 솔루션으로 지목되고 있습니다.
1250+
Ansible modules
24,000+
Stars o...
8
ANSIBLE 테크니컬 목표
Ansible 엔진은 물리/가상화/클라우드/네트워크 장비의 Infrastructure 요소의 오케스트레이션을 목표로 하고 있습니다.
핵심은 인프라 요소의 플랫폼을 가리지 않고, IT 인력...
9
ANSIBLE 주요 기능
Ansible 엔진은 Agent 설치 없이, SSH/WinRM이용, 플레이북 기반의 쉬운 문법을 제공하여, 강력한 기능을 제공합니다.
별도의 Agent 없이 SSH/Window PowerSh...
10
ANSIBLE Infrastructure 적용 대상
Ansible 접속 가능한 대부분의 Infratstructure의 엔진을 지원하고 있습니다.
플랫폼 / 솔루션 등 다양한 현재 우리의 Infrastructure ...
11
ANSIBLE How-To Automate
Ansible 엔진은 Inventory/API/Modules/Plugins를 이용해서, 플레이북을 수행하게 됩니다.
플레이북을 define된 인벤토리와 선택된 Module...
12
12
리눅스
호스트
파이썬 코드가 관리 노드에서
전송되고 원격지에서 실행 후
수행 코드는 제거됨
컨트롤 노드
원격에서 실행
Ansible 엔진은 2가지 방법으로 원격에서 원하는 엔진에게 업무를 수행토록 설계되어 있...
13
Red Hat Ansible How-To Automate
레드햇 Ansible 엔진과 레드햇 Ansible Tower로 구성되어, 완벽한 오케스레이션을 제공하고 있습니다.
레드햇 Ansible 엔진은 Tower를 ...
14
클라우드 가상화 & 컨테이너 윈도우 네트워크 CHAT 모니터링
AWS
Azure
CenturyLink
Digital Ocean
Google
OpenStack
Rackspace
+more
VMware
RHEV
Ope...
AUTOMATION FOR TEAMS
16
CONTROL
SIMPLE POWERFUL AGENTLESS
KNOWLEDGE DELEGATION
ANSIBLE TOWER 는 Ansible 엔진의 자동화 적용 확장을 쉽게 구현할 수 있습니다.
ANSIBLE 자동...
17
PUSH-BUTTON LAUNCH
Launch automation jobs with a button
ACCESS CONTROL
Role-based access control &
LDAP integration
DEL...
18
USE CASES
일반 사용자
(USERS)
ANSIBLE
파이썬 수행 코드(PYTHON CODEBASE)
오픈 소스 모듈 라이브러리
플러그인(PLUGINS)
CLOUD
AWS,
GOOGLE CLOUD,
MS AZ...
19
ANSIBLE DASHBOARD(데쉬보드)
- Ansible 환경 하에서 진행되는 모든 일에 대한 디스플레이를 제공
- 상태, 최근 작업 활동 및 최근 실행한 작업의 스냅 샷 제공
- 특정 작업 및 시간 범위의 데...
20
MULTI-PLAYBOOK WORKFLOWS(워크플로우)
- 많은 복잡한 작업을 가능
- 애플리케이션 배포하는 프로비저닝 워크플로우 생성 가능
- CI / CD 테스트 워크플로우 작성 가능
- 워크플로우 편집기로 ...
21
INTEGRATED NOTIFICATIONS(통합 알람)
- 작업 성공/실패 개인 또는 팀에게 알림 가능
(Slack, Hipchat, PagerDuty, SMS, 전자메일)
SCHEDULE ANSIBLE JOBS...
22
MANAGE AND TRACK YOUR ENTIRE INVENTORY(동적 인벤토리 관리)
- Amazon Web Services, Microsoft Azure 퍼블릭 클라우드 공급자
인벤토리 연결 제공
- 로컬 ...
23
REMOTE COMMAND EXECUTION(원격 명령 실행-Ad Hoc)
- Tower의 원격 명령 실행으로 인벤토리의 모든 호스트 또는 호스트 그룹
항목에서 간단한 작업 실행
- 원격 명령 실행은 타워의 역할 ...
24
COMPREHENSIVE REST API AND TOWER CLI TOOL(API, CLI 제공)
- REST API, CLI 제공
ANSIBLE TOWER Functions
25
ANSIBLE TOWER CLIENTS : GLOBAL
AUTOMATION = ACCELERATION
- Windows Servers
- Network Equipment
27
가상 프로토타입을 통한 계획 및 구현
Use tasks as reusable building blocks
현재 조직이 운영하는 개발 방법을 그대로 이용 가능
Agile, DevOps, Waterfall
3rd 테스...
28
70+
Windows Modules
Windows Operating System과 Windows용 애플리케이션의 배포 및 관리
ANSIBLE 윈도우 적용 사례
ansible.com/windows
350+
Power...
29
- hosts: new_servers
tasks:
- name: ensure common OS updates are current
win_updates:
register: update_result
- name: e...
30 30
INFRASTRUCTURE AS YAML
● 백업 & 복원을 자동화
● "골든” 버전의 구성 관리
구성 관리
● 변경 사항은 일부분이거나 혹은 전체
● 프로세스의 일부로 만듦: agile, waterfall,...
31 31
컨트롤 노드 관리 대상 네트워크 디바이스들
컨트롤 노드:
리눅스나 Mac OSX를 실행하는
클라이언트 시스템 (서버, 랩탑, 가상머신)
관리대상 노드들 (인벤토리):
SSH나 API를 통해 관리되는
엔드포인트...
32 32
• A10
• Apstra AOS
• Arista EOS (cli, eAPI), CVP
• Aruba Networks
• AVI Networks
• Big Switch Networks
• Brocade Iro...
33 33
- name: configure network interface
net_interface:
name: “{{ interface_name }}”
description: “{{ interface_descripti...
Ansible 활용 샘플
35
서버 Ping
• 서버 ping
• ansible ping 사용
[ansible@client ~]$ cat ping.yml
---
- hosts: all
tasks:
- name: ping task
ping:
[a...
36
서버 정보 수집
• 서버 정보(hostname, IPV4 address, disk partition, dns server, kernel version) 등 확인
• ansible fact 사용
[root@clien...
37
파일 전송
• 제어노드(ansible 실행 서버) 에서 각 관리노드로 파일 전송
• copy 사용
[root@client ~]# cat file-copy.yml
---
- name: Copy file to Remo...
38
파일 전송_계속
• 제어노드(ansible 실행 서버) 에서 각 관리노드로 파일 전송
• copy 사용
test_file.txt 변경하지 않고 "재실행"
test_file.txt 파일 전송
test_file.txt...
39
파일 수정
• 설정 파일 수정
• lineinfile(한 줄 수정)사용
[root@client ~]# cat file-modify.yml
---
- name: lineinfile mode use
hosts: loc...
40
파일 실행
• 실행파일(shell script) 실행
• script 사용
[root@client ~]# cat script.yml
---
- name:
hosts: all
tasks:
- script: /root...
41
파일 수집
• 관리노드 특정 파일 제어노드 특정 디렉토리로 파일 취합
• fetch 사용
[root@client ~]# cat file_gather.yml
---
- name:
hosts: all
tasks:
- ...
42
파일/디렉토리 권한 변경
• 특정 파일/디렉토리 권한 변경
• file 사용
[root@client ~]# cat file_perm.yml
---
- hosts: rhv
tasks:
- name: Set permi...
43
파일/디렉토리 권한 소유권 변경
• 특정 파일/디렉토리 소유권 변경
• file 사용
/etc/passwd, /etc/group -> owner, group: root
[root@client ~]# cat file...
44
파일/디렉토리 삭제
• 특정 파일/디렉토리 삭제
• file 사용
/root/test_directory_00, 01 디렉토리 삭제
[root@client ~]# cat remove.yml
---
- hosts: a...
45
pam 설정
• 패스워드 로그인 오류 처리
• pamd 사용
/etc/pam.d/system-auth
[root@client ~]# cat pamd.yml
---
- hosts: rhv
tasks:
- name: ...
46
pam 설정
• 패스워드 로그인 오류 처리
• pamd 사용
/etc/pam.d/system-auth
[root@host26 ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This f...
47
팩키지 설치/업데이트
• 팩키지 설치
• yum 사용
[root@client ~]# cat package_install.yml
---
- name:
hosts: all
tasks:
- yum:
name: telne...
48
서비스 기동 및 시작 설정
• 서비스 시작/정지/재기동
• service 사용
[root@client ~]# cat service_restart.yml
---
- name:
hosts: rhv
tasks:
- se...
49
웹 서비스 상태 확인
• 웹 서비스 상태 확인
• url 사용
[root@client ~]# cat web_test.yml
---
- name:
hosts: rhv
tasks:
- uri:
url: "http://...
50
웹 서비스 상태 확인_계속
• 웹 서비스 상태 확인
• url 사용
[root@client ~]# cat web_test.yml
---
- name:
hosts: rhv
tasks:
- uri:
url: "http...
51
ansible-doc
• ansible-doc [module name]
• 모듈 설명 및 사용 예제
[ansible@client ~]$ ansible-doc -l
a10_server Manage A10 Networ...
52
ansible-doc
• ansible-doc [module name]
• 모듈 설명 및 사용 예제
[root@client ~]# ansible-doc service
> SERVICE (/usr/lib/python...
END
of
the Document
Upcoming SlideShare
Loading in …5
×

0

Share

Download to read offline

(Red hat) Ansible Overview-samuel-2018-0911(printed)

Download to read offline

2018 : Red Hat - Infrastructure Automation - Ansible : Samuel

Basic is very Important

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

(Red hat) Ansible Overview-samuel-2018-0911(printed)

  1. 1. 하나카드 – Infrastructure Automation Ansible 소개 세션 2018년 09월 천상진 이사 / 한국 레드햇
  2. 2. 2 Summary : Ansible은 인프라 자동화툴로, IT 인프라 전반을 관리한다 Agent 프로그램이 필요하거나, 비싼 라이선스 비용을 요구하던 자동화 배치툴과는 달리, 이해하기 쉬운 간단한 정의 언어로 인프라 구성 요소를 관리(Orchestration) 할 수 있는 Infrastructure Automation 솔루션입니다. 설정 관리 • 설정파일과 배포 중앙집중화 • 서버마다 다른 부분은 변수로 처리하여 동적 구성 제공 소프트웨어 배포 • 다수의 서버에 소프트웨어 자동배포 • 전체 소프트웨어 대상 손쉬운 수명 주기 관리 오케스트레이션 • 다른 작업 솔루션과의 연계 통해 복잡한 작업 도 워크플로우 형태로 한번에 수행 • 가상머신 생성부터 서비스 제공 수행 • 어플리케이션 롤링 업그레이드 수행 빌드 및 배포 자동화 • CI/CD 환경을 손쉽게 구성 • 서비스 개발 및 상용화를 빠르게 구현할 수 있는 자동화 플랫폼 • 어플리케이션 빌드부터 테스트, 구축 간 다른 빌드 솔루션과 연동 가능 운영체제 자동 설치 • 물리, 가상화, 클라우드 기반 서버 OS 설치 • 템플릿 기반 VM 생성 • vCenter, OpenStack 등 다양한 가상환경 지원 보안 및 컴플라이언스 • 보안 정책과 컴플라이언스 수립 • 시스템 생성시 부터 보안 적용 • 표준화를 통한 강제성 부여 • 적용 여부에 대한 모니터링 가능
  3. 3. 3 IT 자동화? 그 필요성의 대두 IT 자동화(automation)는 공장 자동화에서 시작되어 IT 시스템으로 그 범위가 확대되었다. 공장 자동화는 수년간에 걸쳐 거대한 변화를 겪었다. 자동차 제조 공장에 처음 적용된 자동화는 제품 가격을 낮춤과 동시에 질적 향상을 가져다 주었다. 자동화된 생산 공정에서는 기존 사람들이 발생시키는 실수 및 비효율성은 급격히 줄어 생산성이 증대되었다. 영화 모던타임즈 중 어떤 자동차 회사의 자동화 시스템
  4. 4. 4 폭발적인 인프라 요소들의 증가 지난 몇 년간 우리의 서비스는 폭발적인 네트워크와 단말기의 증가에 대등하고 있습니다. 단순한 서비스 제공에서 복잡하고, 개별 고객 단위 서비스를 위한 다양한 서비스를 제공하기 위해, 다양한 인프라 요소들을 이용한 인프라를 도입하고, 구성하고, 관리하고, 폐기/교체하고 있습니다. 관리자/개발자/운영자 모든 부문의 업무량이 증가하고 있습니다. CONTAINERS 1x 소프트웨어 정의 네트워킹 (SOFTWARE-DEFINED NETWORKING) 소프트웨어 정의 스토리지 (SOFTWARE-DEFINED STORAGE) 소프트웨어 정의 데이터센터 (SOFTWARE-DEFINED DATACENTER) 10x 10x 10x CONTAINERS CONTAINERS
  5. 5. 5 반복되는 Infrastructure 작업의 증가 중요한 구성 요소들일지라도, 단순 반복적인 Infrastructure 업무는 존재하며, 매우 중요합니다. 1인당 관리요소가 10여대를 넘는 순간부터는 중요한 업무라 할지라도 세부적인 관리가 어려워지며, 복잡해지는 구성 요소들에 대해서 중요하고, 매우 민감한 사안을 놓치는 경우가 발생하게 됩니다. 이는 반드시 관리되어져야 합니다. Automation Orchestration 관리자/개발자/운영자 ● 도메인 관련 스킬셋 ● 벤더(공급업체) – 기반 지식 ● 인프라 솔루션 단위의 조직 ● 기존의 단독적인 운영 방식 ● 지원 요청 및 승인 후 지원 제공 Infrastructure 솔루션 ● 인프라 솔루션 중심 기능 제공 ● 전통적인 CLI 전용 방법론 ● 단일 제품(사일로 형태) 기술 제공 ● 공통 API 방식이 아닌 독점 플랫폼
  6. 6. 6 Infrastructure Automation의 대두 배치 Job 위주의 자동화를 넘어서는 Infrastructure 엔진를 직접 관리 자동화하게 되었습니다. 반복적이고, 복잡한 Infrastructure 요소를 관리할 수 있는 자동화 도구의 필요성이 대두되어 다양한 솔루션이 IT 인력 및 기업에 소개되고, 제품 혹은 기능으로 그 역할을 수행하게 되었습니다. 물론 각 솔루션은 다양한 장점 및 제한점을 제시하였습니다. 출처 : https://trends.google.com/trends/explore?cat=32&q=%2Fm%2F0k0vzjb,%2Fm%2F05zxlz3,%2Fm%2F03d3cjz,%2Fm%2F0hn8c6s
  7. 7. 7 ANSIBLE 관심도 증가 Ansible은 가장 주목받는 오픈소스 솔루션이며, 활발히 업데이트되며, 매우 중요한 IT 솔루션으로 지목되고 있습니다. 1250+ Ansible modules 24,000+ Stars on GitHub 400,000+ Downloads a month
  8. 8. 8 ANSIBLE 테크니컬 목표 Ansible 엔진은 물리/가상화/클라우드/네트워크 장비의 Infrastructure 요소의 오케스트레이션을 목표로 하고 있습니다. 핵심은 인프라 요소의 플랫폼을 가리지 않고, IT 인력이 쉽게 인식할 수 있는 인간 친화적이며, 손쉽게 재-사용할 수 있는 플레이북을 제공하여, 전체 DataCenter를 오케스트레이션할 수 있어, 우리의 서비스를 보다 안정적이고 유연하게 운영하게 할 것입니다. Agentless support for all major OS variants, physical, virtual, cloud and network devices. Perfectly describe and document every aspect of your application environment. Every change can be made by Playbooks, ensuring everyone is on the same page. Playbooks are plain-text. Treat them like code in your existing version control. Capture all the servers 100% of the time, regardless of infrastructure, location, etc. Every change can be made by Playbooks, ensuring everyone is on the same page. CROSS PLATFORM HUMAN READABLE PERFECT DESCRIPTION OF APPLICATION VERSION CONTROLLED DYNAMIC INVENTORIES 여러 플랫폼/솔루션 엔진을 지원 구문을 쉽게 이해/재-조정 가능 ORCHESTRATION PLAYS WELL WITH OTHERS 다양한 기능 플레이북 공유/획득
  9. 9. 9 ANSIBLE 주요 기능 Ansible 엔진은 Agent 설치 없이, SSH/WinRM이용, 플레이북 기반의 쉬운 문법을 제공하여, 강력한 기능을 제공합니다. 별도의 Agent 없이 SSH/Window PowerShell 접속 기능을 사용하고, YAML 정의 기반의 문법과 이를 이용한 다양한 플레이 북을 수정하여, 즉각적으로 강력한 인프라 오케스트레이션을 제공합니다. SIMPLE POWERFUL AGENTLESS • 애플리케이션 개발 (CI/CD) • 설정 관리 • 인프라 오케스트레이션 (OS, Storage, Network) • 네트워크 자동화 • 애플리케이션 라이프 사이클의 오케스트레이션 • YAML 기반의 읽고 쓰기 쉬운 자동화 언어 • 프로그래밍 스킬이 필요하지 않음 • 팀 간의 작업 공유가 쉬움 • 빠른 생산성 • 에이전트가 필요없는 환경 • OpenSSH & WinRM • 즉각적인 사용 가능 • 높은 효율성과 보안성
  10. 10. 10 ANSIBLE Infrastructure 적용 대상 Ansible 접속 가능한 대부분의 Infratstructure의 엔진을 지원하고 있습니다. 플랫폼 / 솔루션 등 다양한 현재 우리의 Infrastructure 대부분을 관리하고, 배포하고, 구성 정보를 변경할 수 있는 자동화 솔루션인 Ansible은 이미 공유되어 있는 플레이북을 이용하여, 즉각적으로 우리의 인프라 환경에 변경/적용할 수 있습니다. 프로비저닝 Do these. 방화벽 애플리케이션 배포 설정 관리 보안 및 컴플라이언스 지속적인 배포 (CD) 오케스트레이션 On these. 로드밸런서 애플리케이션 컨테이너 클라우드 서버 인프라 스트럭처 스토리지 And more... 네트워크 디바이스
  11. 11. 11 ANSIBLE How-To Automate Ansible 엔진은 Inventory/API/Modules/Plugins를 이용해서, 플레이북을 수행하게 됩니다. 플레이북을 define된 인벤토리와 선택된 Module에 대한 action을 포함하고 있으며, 대상 플랫폼 혹은 device에 접속하여, 정의된 업무를 수행하게 된다.(CMDB는 인벤토리의 정보를 저장하고,다양한 포맷을 제공할 수 있는 Configuration Management DB임) ANSIBLE’S AUTOMATION ENGINE CMDB USERS INVENTORY HOSTS NETWORK DEVICES PLUGINS API MODULES PUBLIC / PRIVATE CLOUD PUBLIC / PRIVATE CLOUD ANSIBLE PLAYBOOK 생산성 효율성 정확성 신속성 자동화 툴의 요구 특징
  12. 12. 12 12 리눅스 호스트 파이썬 코드가 관리 노드에서 전송되고 원격지에서 실행 후 수행 코드는 제거됨 컨트롤 노드 원격에서 실행 Ansible 엔진은 2가지 방법으로 원격에서 원하는 엔진에게 업무를 수행토록 설계되어 있습니다. 수행될 시스템 플랫폼에 따라서 플레이북의 내용을 일반적으로 파이썬 코드로 변경한 후 해당 서버로 전송한 후 수행하며, 특수한 경우, 파이썬 코드를 수행할 수 없는 플랫폼이거나, 특별히 지정한 경우, 로컬에서 수행할 수 있습니다. 네트워킹 디바이스 파이썬 코드가 컨트롤 노드에서 로컬로 실행 컨트롤 노드 로컬에서 실행(SSH로 접속) 원격 호스트로 전송 ANSIBLE Automation : How-To Automate
  13. 13. 13 Red Hat Ansible How-To Automate 레드햇 Ansible 엔진과 레드햇 Ansible Tower로 구성되어, 완벽한 오케스레이션을 제공하고 있습니다. 레드햇 Ansible 엔진은 Tower를 이용해서, 자동화의 완벽한 관리를 위한 스케쥴링 및 감사 등을 제공할 수 있습니다. 자동화 솔루션 의 개별 Task를 GUI 환경으로 수행하거나, 수행 결과를 Tower의 로깅 뷰를 통해서 운영/관리할 수 있습니다. Design your process and task in playbook. • What (Module) Ansible Engine / Ansible Tower • Where (Target) • Why (Logging) • How (Task) • Who (Audit) Ansible Tower • When (Scheduling)
  14. 14. 14 클라우드 가상화 & 컨테이너 윈도우 네트워크 CHAT 모니터링 AWS Azure CenturyLink Digital Ocean Google OpenStack Rackspace +more VMware RHEV OpenStack OpenShift Atomic CloudStack +more ACLs Files Packages IIS Regedits Shares Services Configs Users Domains +more Arista A10 Cumulus Bigswitch Cisco Cumulus Dell F5 Juniper Palo Alto OpenSwitch +more HipChat IRC Jabber Email Rocketchat Sendgrid Slack Twilio +more Airbrake BigPanda Datadog LogicMonitor Monit Nagios New Relic PagerDuty Sensu StackDriver Zabbix +more ANSIBLE Support Platforms & Solutions
  15. 15. AUTOMATION FOR TEAMS
  16. 16. 16 CONTROL SIMPLE POWERFUL AGENTLESS KNOWLEDGE DELEGATION ANSIBLE TOWER 는 Ansible 엔진의 자동화 적용 확장을 쉽게 구현할 수 있습니다. ANSIBLE 자동화 엔진 작업 스케줄 및 중앙화 가시성 확보 및 규제 준수 역할 기반 접근 및 셀프 서비스 모든 관련 인력이 동일한 언어로 소통 다중 배포를 위한 설계 예측 가능하고, 신뢰성 및 안전함 Ansible Tower는 Ansible 엔진의 자동화 적용 간 중앙 관리 및 가시적인 관리 기능을 제공합니다. Ansible Tower는 작업 스케쥴을 중앙에서 관리하고, 수행되는 플레이북의 수행 순서를 가시적으로 확인하고, 수행간 로그를 저장할 수 있으며, 수행 / 실패 등의 현황을 확인/추적할 수 있습니다. 프로젝트와 계정을 관리할 수 있고, 셀프 서비스 포탈을 제공합니다. Ansible Tower
  17. 17. 17 PUSH-BUTTON LAUNCH Launch automation jobs with a button ACCESS CONTROL Role-based access control & LDAP integration DELEGATION OF CREDENTIALS Delegate credentials without giving away secrets JOB SCHEDULING Schedule automation jobs (great for periodic remediation) INVENTORY MANAGEMENT Graphically manage your internal & cloud resources API & CLI Documented RESTful API and Tower CLI to integrate Tower into your tools AUDITING See a full ANSIBLE job history with drill-in details ANSIBLE TOWER
  18. 18. 18 USE CASES 일반 사용자 (USERS) ANSIBLE 파이썬 수행 코드(PYTHON CODEBASE) 오픈 소스 모듈 라이브러리 플러그인(PLUGINS) CLOUD AWS, GOOGLE CLOUD, MS AZURE … INFRASTRUCTURE LINUX, WINDOWS, UNIX … NETWORKS ARISTA, CISCO, JUNIPER OVS … CONTAINERS CONTAINERS, KUBERNETES, LXC … SERVICES DATABASES, LOGGING, SOURCE CONTROL MANAGEMENT… TRANSPORT SSH, WINRM, ETC. AUTOMATED ENTERPRISE Ansible 관리자 ANSIBLE CLI & CI SYSTEMS ANSIBLE PLAYBOOKS …. ANSIBLE TOWER SIMPLE USER INTERFACE TOWER API 역할 기반 접근제어 (RBAC) KNOWLEDGE & VISIBILITY 스케쥴링 및 중강 관리형 수행 업무(Playbooks) CONFIGURATION MANAGEMENT APP DEPLOYMENT CONTINUOUS DELIVERY SECURITY & COMPLIANCE ORCHESTRATION PROVISIONING ANSIBLE TOWER Architecture
  19. 19. 19 ANSIBLE DASHBOARD(데쉬보드) - Ansible 환경 하에서 진행되는 모든 일에 대한 디스플레이를 제공 - 상태, 최근 작업 활동 및 최근 실행한 작업의 스냅 샷 제공 - 특정 작업 및 시간 범위의 데이터를 그래프로 표시하도록 작업 상태 설정 REAL-TIME JOB STATUS UPDATES(실시간 작업 모니터링) - Playbook 실시간 스트림 실행 - 작업 완료/실패 각 시스템별로 출력 - 자동화 작업 상태 및 대기열 작업 출력 ANSIBLE TOWER Functions
  20. 20. 20 MULTI-PLAYBOOK WORKFLOWS(워크플로우) - 많은 복잡한 작업을 가능 - 애플리케이션 배포하는 프로비저닝 워크플로우 생성 가능 - CI / CD 테스트 워크플로우 작성 가능 - 워크플로우 편집기로 복잡한 프로세스 쉽게 모델링 가능 WHO RAN WHAT JOB WHEN(작업 기록) - 자동화 작업 내용 기록 유지 - 누가 그것을 실행했는지, 어떻게 커스터마이징했는지, 무엇을 했는지, 이슈가 어디에서 발생했는지 기록 ANSIBLE TOWER Functions
  21. 21. 21 INTEGRATED NOTIFICATIONS(통합 알람) - 작업 성공/실패 개인 또는 팀에게 알림 가능 (Slack, Hipchat, PagerDuty, SMS, 전자메일) SCHEDULE ANSIBLE JOBS(스케쥴 작업) - Playbook 실행, 클라우드 인벤토리 업데이트 및 소스 제어 예약 (지금 실행/나중에 실행/ 계속 반복 실행) - 야간 백업 작업, 컴플라이언스를 위한 주기적 구성 재조정 ANSIBLE TOWER Functions
  22. 22. 22 MANAGE AND TRACK YOUR ENTIRE INVENTORY(동적 인벤토리 관리) - Amazon Web Services, Microsoft Azure 퍼블릭 클라우드 공급자 인벤토리 연결 제공 - 로컬 OpenStack 클라우드 또는 VMware 환경 인벤토리 연결 제공 - Red Hat Satellite 또는 Red Hat CloudForms 환경 또는 사용자 정의 CMDB 연결 제공 - 인벤토리를 동기화 상태 유지 SELF-SERVICE IT... SIMPLIFIED(셀프 서비스) - LDAP, Active Directory 또는 위임된 SAML 인증과 같은 회사 디렉토리 서버로부터 직접 동기화된 자동화 작업 실행 ANSIBLE TOWER Functions
  23. 23. 23 REMOTE COMMAND EXECUTION(원격 명령 실행-Ad Hoc) - Tower의 원격 명령 실행으로 인벤토리의 모든 호스트 또는 호스트 그룹 항목에서 간단한 작업 실행 - 원격 명령 실행은 타워의 역할 기반 액세스 제어 엔진 사용, 모든 작업 기록 SYSTEM TRACKING(시스템 규정 준수 추적 기능) - Audit과 시스템이 규정 준수 확인 - 시간이 지남에 따라 시스템이 어떻게 변했는지 발견하거나 클러스터의 시스템을 비교하여 시스템이 어떻게 다른 지 확인 ANSIBLE TOWER Functions
  24. 24. 24 COMPREHENSIVE REST API AND TOWER CLI TOOL(API, CLI 제공) - REST API, CLI 제공 ANSIBLE TOWER Functions
  25. 25. 25 ANSIBLE TOWER CLIENTS : GLOBAL
  26. 26. AUTOMATION = ACCELERATION - Windows Servers - Network Equipment
  27. 27. 27 가상 프로토타입을 통한 계획 및 구현 Use tasks as reusable building blocks 현재 조직이 운영하는 개발 방법을 그대로 이용 가능 Agile, DevOps, Waterfall 3rd 테스팅 플랫폼과의 통합 Integrate with formal testing platforms 자동화를 통한 failure 제거 Validate changes were successful 배포 전 환경으로의 복구 환경 구성 가능 YOU CAN AUTOMATE YOUR NETWORK
  28. 28. 28 70+ Windows Modules Windows Operating System과 Windows용 애플리케이션의 배포 및 관리 ANSIBLE 윈도우 적용 사례 ansible.com/windows 350+ Powershell DSC resources ANSIBLE WINDOWS AUTOMATION
  29. 29. 29 - hosts: new_servers tasks: - name: ensure common OS updates are current win_updates: register: update_result - name: ensure domain membership win_domain_membership: dns_domain_name: contoso.corp domain_admin_user: '{{ domain_admin_username }}' domain_admin_password: '{{ domain_admin_password }}' state: domain register: domain_result - name: reboot and wait for host if updates or domain change require it win_reboot: when: update_result.reboot_required or domain_result.reboot_required - name: ensure local admin account exists win_user: name: localadmin password: '{{ local_admin_password }}' groups: Administrators - name: ensure common tools are installed win_chocolatey: name: '{{ item }}' with_items: ['sysinternals', 'googlechrome'] ANSIBLE 윈도우 SAMPLE
  30. 30. 30 30 INFRASTRUCTURE AS YAML ● 백업 & 복원을 자동화 ● "골든” 버전의 구성 관리 구성 관리 ● 변경 사항은 일부분이거나 혹은 전체 ● 프로세스의 일부로 만듦: agile, waterfall, 등등. 진행중인 상태를 정상적인 상태로 보장 ● 작업을 매일, 매주, 매월 단위로 예약 ● 정기적인 상태 검사 및 확인 수행 성공적인 네트워크 운영을 위한 세 가지 주요 이점은 운영 혹은 구축/구성할 네트워크 시스템을 일괄 통합 관리할 수 있는 자동화툴로 ANSIBLE을 사용할 수 있습니다. ANSIBLE Network Automation
  31. 31. 31 31 컨트롤 노드 관리 대상 네트워크 디바이스들 컨트롤 노드: 리눅스나 Mac OSX를 실행하는 클라이언트 시스템 (서버, 랩탑, 가상머신) 관리대상 노드들 (인벤토리): SSH나 API를 통해 관리되는 엔드포인트 콜렉션 모듈: 원격 시스템의 명령어 실행을 처리 인벤토리 플레이북 모듈 SSH SSH SSH, API Cisco IOS Arista EOS Cumulus Linux ANSIBLE Network Automation : How to login
  32. 32. 32 32 • A10 • Apstra AOS • Arista EOS (cli, eAPI), CVP • Aruba Networks • AVI Networks • Big Switch Networks • Brocade Ironware • Cisco ACI, AireOS, ASA, IOS, IOS-XR, NSO, NX-OS • Citrix Netscaler • Cumulus Linux • Dell OS6, OS9, OS10 • Exoscale • F5 BIG-IP • Fortinet FortIOS, FMGR • Huawei • Illumos • Infoblox NIOS • Juniper Junos • Lenovo CNOS, ENOS • Mellanox ONYX • Ordnance • NETCONF • Netvisor • Openswitch • Open vSwitch (OVS) • Palo Alto PAN-OS • Nokia NetAct, SR OS • VyOS ANSIBLE 지원 Network Vendor
  33. 33. 33 33 - name: configure network interface net_interface: name: “{{ interface_name }}” description: “{{ interface_description }}” enabled: yes mtu: 9000 state: up - name: configure bgp neighbors net_bgp_neighbor: peers: “{{ item.peer }}” remote_as: “{{ item.remote_as }}” update_source: Loopback0 send_community: both enabled: yes state: present - iosxr_interface: ... - iosxr_bgp_neighbor: ... - nxos_interface: ... - nxos_bgp_neighbor: ... - junos_interface: ... - junos_bgp_neighbor: ... - eos_interface: ... - eos_bgp_neighbor: ... - ios_interface: ... - ios_bgp_neighbor: ... ANSIBLE Network Playbook Sample
  34. 34. Ansible 활용 샘플
  35. 35. 35 서버 Ping • 서버 ping • ansible ping 사용 [ansible@client ~]$ cat ping.yml --- - hosts: all tasks: - name: ping task ping: [ansible@client ~]$ ansible-playbook ping.yml 모든 서버 ping [ansible@client ~]$ ansible all -m ping [ansible@client ~]$ for i in 192.168.11.1 192.168.11.2 192.168.11.3; do ping -c3 $i;done
  36. 36. 36 서버 정보 수집 • 서버 정보(hostname, IPV4 address, disk partition, dns server, kernel version) 등 확인 • ansible fact 사용 [root@client ~]# cat gather.yml --- - name: hosts: all tasks: - debug: msg: "{{ ansible_hostname }}: {{ ansible_kernel }}" hostname: kernel 정보 확인
  37. 37. 37 파일 전송 • 제어노드(ansible 실행 서버) 에서 각 관리노드로 파일 전송 • copy 사용 [root@client ~]# cat file-copy.yml --- - name: Copy file to Remote hosts: all tasks: - name: copy copy: src: /root/test_file.txt dest: /root/copy_test_file.txt test_file.txt 파일 전송
  38. 38. 38 파일 전송_계속 • 제어노드(ansible 실행 서버) 에서 각 관리노드로 파일 전송 • copy 사용 test_file.txt 변경하지 않고 "재실행" test_file.txt 파일 전송 test_file.txt 변경하고 "재실행"
  39. 39. 39 파일 수정 • 설정 파일 수정 • lineinfile(한 줄 수정)사용 [root@client ~]# cat file-modify.yml --- - name: lineinfile mode use hosts: localhost tasks: - name: httpd.conf port 8080 change lineinfile: path: /etc/httpd/conf/httpd.conf regexp: '^Listen ' insertafter: '^#Listen ' line: 'Listen 8080' /etc/httpd/conf/httpd.conf 파일 수정
  40. 40. 40 파일 실행 • 실행파일(shell script) 실행 • script 사용 [root@client ~]# cat script.yml --- - name: hosts: all tasks: - script: /root/shell.sh /root/shell.sh
  41. 41. 41 파일 수집 • 관리노드 특정 파일 제어노드 특정 디렉토리로 파일 취합 • fetch 사용 [root@client ~]# cat file_gather.yml --- - name: hosts: all tasks: - fetch: src: /tmp/info.txt dest: /root/test/info.txt-{{ ansible_hostname }} flat: yes /tmp/info.txt --> /root/test/info.txt-HOSTNAME
  42. 42. 42 파일/디렉토리 권한 변경 • 특정 파일/디렉토리 권한 변경 • file 사용 [root@client ~]# cat file_perm.yml --- - hosts: rhv tasks: - name: Set permission as 0644 on /etc/group file: path: "{{ item }}" mode: 0644 with_items: - /etc/group - /etc/passwd register: result - debug: msg: Set permission as 0644 {{ result.msg }}. /etc/passwd, /etc/group -> 0644
  43. 43. 43 파일/디렉토리 권한 소유권 변경 • 특정 파일/디렉토리 소유권 변경 • file 사용 /etc/passwd, /etc/group -> owner, group: root [root@client ~]# cat file_own.yml --- - hosts: rhv tasks: - name: Set owership & permission to root on /etc/passwd file: path: "{{ item }}" owner: root group: root mode: 0644 with_items: - /etc/group - /etc/passwd
  44. 44. 44 파일/디렉토리 삭제 • 특정 파일/디렉토리 삭제 • file 사용 /root/test_directory_00, 01 디렉토리 삭제 [root@client ~]# cat remove.yml --- - hosts: all tasks: - name: file: path: "{{ item }}" state: absent with_items: - /root/test_directory_00 - /root/test_directory_01
  45. 45. 45 pam 설정 • 패스워드 로그인 오류 처리 • pamd 사용 /etc/pam.d/system-auth [root@client ~]# cat pamd.yml --- - hosts: rhv tasks: - name: Set Deny For Failed Password Attempts pamd: name: system-auth type: auth control: sufficient module_path: pam_unix.so state: before new_type: auth new_control: required new_module_path: pam_tally2.so module_arguments: 'onerr=fail deny=3 unlock_time=300'
  46. 46. 46 pam 설정 • 패스워드 로그인 오류 처리 • pamd 사용 /etc/pam.d/system-auth [root@host26 ~]# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faildelay.so delay=2000000 auth required pam_tally2.so onerr=fail deny=3 unlock_time=300 auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so
  47. 47. 47 팩키지 설치/업데이트 • 팩키지 설치 • yum 사용 [root@client ~]# cat package_install.yml --- - name: hosts: all tasks: - yum: name: telnet state: latest telnet 최신 버전 설치
  48. 48. 48 서비스 기동 및 시작 설정 • 서비스 시작/정지/재기동 • service 사용 [root@client ~]# cat service_restart.yml --- - name: hosts: rhv tasks: - service: name: httpd state: restarted enabled: yes httpd 서비스 재기동 및 부팅시 자동시작 설정
  49. 49. 49 웹 서비스 상태 확인 • 웹 서비스 상태 확인 • url 사용 [root@client ~]# cat web_test.yml --- - name: hosts: rhv tasks: - uri: url: "http://{{ ansible_default_ipv4.address }}:8080" return_content: yes 웹 서비스 정상/비정상 체크 정상 상태(200)
  50. 50. 50 웹 서비스 상태 확인_계속 • 웹 서비스 상태 확인 • url 사용 [root@client ~]# cat web_test.yml --- - name: hosts: rhv tasks: - uri: url: "http://{{ ansible_default_ipv4.address }}:8080" return_content: yes 웹 서비스 정상/비정상 체크 정상 상태(403 에러) - index.html 삭제
  51. 51. 51 ansible-doc • ansible-doc [module name] • 모듈 설명 및 사용 예제 [ansible@client ~]$ ansible-doc -l a10_server Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' server object. a10_server_axapi3 Manage A10 Networks AX/SoftAX/Thunder/vThunder devices a10_service_group Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' service groups. a10_virtual_server Manage A10 Networks AX/SoftAX/Thunder/vThunder devices' virtual servers. accelerate Enable accelerated mode on remote node aci_aep Manage attachable Access Entity Profile (AEP) on Cisco ACI fabrics (infra:AttEntityP) aci_ap Manage top level Application Profile (AP) objects on Cisco ACI fabrics (fv:Ap) aci_bd Manage Bridge Domains (BD) on Cisco ACI Fabrics (fv:BD) aci_bd_subnet Manage Subnets on Cisco ACI fabrics (fv:Subnet) aci_bd_to_l3out Bind Bridge Domain to L3 Out on Cisco ACI fabrics (fv:RsBDToOut) aci_config_rollback Provides rollback and rollback preview functionality for Cisco ACI fabrics (config:ImportP) aci_config_snapshot Manage Config Snapshots on Cisco ACI fabrics (config:Snapshot, config:ExportP) aci_contract Manage contract resources on Cisco ACI fabrics (vz:BrCP) aci_contract_subject Manage initial Contract Subjects on Cisco ACI fabrics (vz:Subj) aci_contract_subject_to_filter Bind Contract Subjects to Filters on Cisco ACI fabrics (vz:RsSubjFiltAtt) aci_epg Manage End Point Groups (EPG) on Cisco ACI fabrics (fv:AEPg) aci_epg_monitoring_policy Manage monitoring policies on Cisco ACI fabrics (mon:EPGPol)
  52. 52. 52 ansible-doc • ansible-doc [module name] • 모듈 설명 및 사용 예제 [root@client ~]# ansible-doc service > SERVICE (/usr/lib/python2.7/site-packages/ansible/modules/system/service.py) Controls services on remote hosts. Supported init systems include BSD init, OpenRC, SysV, Solaris SMF, systemd, upstart. For Windows targets, use the [win_service] module instead. * note: This module has a corresponding action plugin. OPTIONS (= is mandatory): - arguments Additional arguments provided on the command line (Aliases: args)[Default: (null)] - enabled Whether the service should start on boot. *At least one of state and enabled are required.* (Choices: yes, no)[Default: (null)] EXAMPLES: # Example action to start service httpd, if not running - service: name: httpd state: started # Example action to stop service httpd, if running - service: name: httpd state: stopped # Example action to restart service httpd, in all cases - service: name: httpd state: restarted
  53. 53. END of the Document

2018 : Red Hat - Infrastructure Automation - Ansible : Samuel Basic is very Important

Views

Total views

20

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

4

Shares

0

Comments

0

Likes

0

×