2. 2
Summary : Ansible은 인프라 자동화툴로, IT 인프라 전반을 관리한다
Agent 프로그램이 필요하거나, 비싼 라이선스 비용을 요구하던 자동화 배치툴과는 달리, 이해하기 쉬운 간단한 정의 언어로
인프라 구성 요소를 관리(Orchestration) 할 수 있는 Infrastructure Automation 솔루션입니다.
설정 관리
• 설정파일과 배포 중앙집중화
• 서버마다 다른 부분은 변수로 처리하여 동적
구성 제공
소프트웨어 배포
• 다수의 서버에 소프트웨어 자동배포
• 전체 소프트웨어 대상 손쉬운 수명 주기 관리
오케스트레이션
• 다른 작업 솔루션과의 연계 통해 복잡한 작업
도 워크플로우 형태로 한번에 수행
• 가상머신 생성부터 서비스 제공 수행
• 어플리케이션 롤링 업그레이드 수행
빌드 및 배포 자동화
• CI/CD 환경을 손쉽게 구성
• 서비스 개발 및 상용화를 빠르게 구현할 수
있는 자동화 플랫폼
• 어플리케이션 빌드부터 테스트, 구축 간
다른 빌드 솔루션과 연동 가능
운영체제 자동 설치
• 물리, 가상화, 클라우드 기반 서버 OS 설치
• 템플릿 기반 VM 생성
• vCenter, OpenStack 등 다양한 가상환경 지원
보안 및 컴플라이언스
• 보안 정책과 컴플라이언스 수립
• 시스템 생성시 부터 보안 적용
• 표준화를 통한 강제성 부여
• 적용 여부에 대한 모니터링 가능
3. 3
IT 자동화? 그 필요성의 대두
IT 자동화(automation)는 공장 자동화에서 시작되어 IT 시스템으로 그 범위가 확대되었다.
공장 자동화는 수년간에 걸쳐 거대한 변화를 겪었다. 자동차 제조 공장에 처음 적용된 자동화는 제품 가격을 낮춤과 동시에 질적
향상을 가져다 주었다. 자동화된 생산 공정에서는 기존 사람들이 발생시키는 실수 및 비효율성은 급격히 줄어 생산성이 증대되었다.
영화 모던타임즈 중 어떤 자동차 회사의 자동화 시스템
4. 4
폭발적인 인프라 요소들의 증가
지난 몇 년간 우리의 서비스는 폭발적인 네트워크와 단말기의 증가에 대등하고 있습니다.
단순한 서비스 제공에서 복잡하고, 개별 고객 단위 서비스를 위한 다양한 서비스를 제공하기 위해, 다양한 인프라 요소들을 이용한
인프라를 도입하고, 구성하고, 관리하고, 폐기/교체하고 있습니다. 관리자/개발자/운영자 모든 부문의 업무량이 증가하고 있습니다.
CONTAINERS
1x
소프트웨어 정의 네트워킹 (SOFTWARE-DEFINED NETWORKING)
소프트웨어 정의 스토리지 (SOFTWARE-DEFINED STORAGE)
소프트웨어 정의 데이터센터 (SOFTWARE-DEFINED DATACENTER)
10x 10x 10x
CONTAINERS CONTAINERS
5. 5
반복되는 Infrastructure 작업의 증가
중요한 구성 요소들일지라도, 단순 반복적인 Infrastructure 업무는 존재하며, 매우 중요합니다.
1인당 관리요소가 10여대를 넘는 순간부터는 중요한 업무라 할지라도 세부적인 관리가 어려워지며, 복잡해지는 구성 요소들에
대해서 중요하고, 매우 민감한 사안을 놓치는 경우가 발생하게 됩니다. 이는 반드시 관리되어져야 합니다.
Automation
Orchestration
관리자/개발자/운영자
● 도메인 관련 스킬셋
● 벤더(공급업체) – 기반 지식
● 인프라 솔루션 단위의 조직
● 기존의 단독적인 운영 방식
● 지원 요청 및 승인 후 지원 제공
Infrastructure 솔루션
● 인프라 솔루션 중심 기능 제공
● 전통적인 CLI 전용 방법론
● 단일 제품(사일로 형태) 기술 제공
● 공통 API 방식이 아닌 독점 플랫폼
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
ANSIBLE 관심도 증가
Ansible은 가장 주목받는 오픈소스 솔루션이며, 활발히 업데이트되며, 매우 중요한 IT 솔루션으로 지목되고 있습니다.
1250+
Ansible modules
24,000+
Stars on GitHub
400,000+
Downloads a month
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
ANSIBLE 주요 기능
Ansible 엔진은 Agent 설치 없이, SSH/WinRM이용, 플레이북 기반의 쉬운 문법을 제공하여, 강력한 기능을 제공합니다.
별도의 Agent 없이 SSH/Window PowerShell 접속 기능을 사용하고, YAML 정의 기반의 문법과 이를 이용한 다양한 플레이
북을 수정하여, 즉각적으로 강력한 인프라 오케스트레이션을 제공합니다.
SIMPLE POWERFUL AGENTLESS
• 애플리케이션 개발 (CI/CD)
• 설정 관리
• 인프라 오케스트레이션
(OS, Storage, Network)
• 네트워크 자동화
• 애플리케이션 라이프 사이클의
오케스트레이션
• YAML 기반의 읽고 쓰기 쉬운
자동화 언어
• 프로그래밍 스킬이 필요하지 않음
• 팀 간의 작업 공유가 쉬움
• 빠른 생산성
• 에이전트가 필요없는 환경
• OpenSSH & WinRM
• 즉각적인 사용 가능
• 높은 효율성과 보안성
10. 10
ANSIBLE Infrastructure 적용 대상
Ansible 접속 가능한 대부분의 Infratstructure의 엔진을 지원하고 있습니다.
플랫폼 / 솔루션 등 다양한 현재 우리의 Infrastructure 대부분을 관리하고, 배포하고, 구성 정보를 변경할 수 있는 자동화 솔루션인
Ansible은 이미 공유되어 있는 플레이북을 이용하여, 즉각적으로 우리의 인프라 환경에 변경/적용할 수 있습니다.
프로비저닝
Do these.
방화벽
애플리케이션 배포 설정 관리 보안 및 컴플라이언스
지속적인 배포
(CD)
오케스트레이션
On these.
로드밸런서 애플리케이션 컨테이너 클라우드
서버 인프라 스트럭처 스토리지 And more...
네트워크 디바이스
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
리눅스
호스트
파이썬 코드가 관리 노드에서
전송되고 원격지에서 실행 후
수행 코드는 제거됨
컨트롤 노드
원격에서 실행
Ansible 엔진은 2가지 방법으로 원격에서 원하는 엔진에게 업무를 수행토록 설계되어 있습니다.
수행될 시스템 플랫폼에 따라서 플레이북의 내용을 일반적으로 파이썬 코드로 변경한 후 해당 서버로 전송한 후 수행하며, 특수한
경우, 파이썬 코드를 수행할 수 없는 플랫폼이거나, 특별히 지정한 경우, 로컬에서 수행할 수 있습니다.
네트워킹
디바이스
파이썬 코드가 컨트롤
노드에서 로컬로 실행
컨트롤 노드
로컬에서 실행(SSH로 접속)
원격 호스트로 전송
ANSIBLE Automation : How-To Automate
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)
16. 16
CONTROL
SIMPLE POWERFUL AGENTLESS
KNOWLEDGE DELEGATION
ANSIBLE TOWER 는 Ansible 엔진의 자동화 적용 확장을 쉽게 구현할 수 있습니다.
ANSIBLE 자동화 엔진
작업 스케줄 및 중앙화
가시성 확보 및
규제 준수
역할 기반 접근 및
셀프 서비스
모든 관련 인력이 동일한
언어로 소통
다중 배포를 위한 설계 예측 가능하고, 신뢰성 및
안전함
Ansible Tower는 Ansible 엔진의 자동화 적용 간 중앙 관리 및 가시적인 관리 기능을 제공합니다.
Ansible Tower는 작업 스케쥴을 중앙에서 관리하고, 수행되는 플레이북의 수행 순서를 가시적으로 확인하고, 수행간 로그를 저장할
수 있으며, 수행 / 실패 등의 현황을 확인/추적할 수 있습니다. 프로젝트와 계정을 관리할 수 있고, 셀프 서비스 포탈을 제공합니다.
Ansible Tower
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
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
ANSIBLE DASHBOARD(데쉬보드)
- Ansible 환경 하에서 진행되는 모든 일에 대한 디스플레이를 제공
- 상태, 최근 작업 활동 및 최근 실행한 작업의 스냅 샷 제공
- 특정 작업 및 시간 범위의 데이터를 그래프로 표시하도록 작업 상태 설정
REAL-TIME JOB STATUS UPDATES(실시간 작업 모니터링)
- Playbook 실시간 스트림 실행
- 작업 완료/실패 각 시스템별로 출력
- 자동화 작업 상태 및 대기열 작업 출력
ANSIBLE TOWER Functions
20. 20
MULTI-PLAYBOOK WORKFLOWS(워크플로우)
- 많은 복잡한 작업을 가능
- 애플리케이션 배포하는 프로비저닝 워크플로우 생성 가능
- CI / CD 테스트 워크플로우 작성 가능
- 워크플로우 편집기로 복잡한 프로세스 쉽게 모델링 가능
WHO RAN WHAT JOB WHEN(작업 기록)
- 자동화 작업 내용 기록 유지
- 누가 그것을 실행했는지, 어떻게 커스터마이징했는지, 무엇을 했는지,
이슈가 어디에서 발생했는지 기록
ANSIBLE TOWER Functions
21. 21
INTEGRATED NOTIFICATIONS(통합 알람)
- 작업 성공/실패 개인 또는 팀에게 알림 가능
(Slack, Hipchat, PagerDuty, SMS, 전자메일)
SCHEDULE ANSIBLE JOBS(스케쥴 작업)
- Playbook 실행, 클라우드 인벤토리 업데이트 및 소스 제어 예약
(지금 실행/나중에 실행/ 계속 반복 실행)
- 야간 백업 작업, 컴플라이언스를 위한 주기적 구성 재조정
ANSIBLE TOWER Functions
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
REMOTE COMMAND EXECUTION(원격 명령 실행-Ad Hoc)
- Tower의 원격 명령 실행으로 인벤토리의 모든 호스트 또는 호스트 그룹
항목에서 간단한 작업 실행
- 원격 명령 실행은 타워의 역할 기반 액세스 제어 엔진 사용, 모든 작업 기록
SYSTEM TRACKING(시스템 규정 준수 추적 기능)
- Audit과 시스템이 규정 준수 확인
- 시간이 지남에 따라 시스템이 어떻게 변했는지 발견하거나 클러스터의
시스템을 비교하여 시스템이 어떻게 다른 지 확인
ANSIBLE TOWER Functions
24. 24
COMPREHENSIVE REST API AND TOWER CLI TOOL(API, CLI 제공)
- REST API, CLI 제공
ANSIBLE TOWER Functions
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
70+
Windows Modules
Windows Operating System과 Windows용 애플리케이션의 배포 및 관리
ANSIBLE 윈도우 적용 사례
ansible.com/windows
350+
Powershell DSC
resources
ANSIBLE WINDOWS AUTOMATION
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
INFRASTRUCTURE AS YAML
● 백업 & 복원을 자동화
● "골든” 버전의 구성 관리
구성 관리
● 변경 사항은 일부분이거나 혹은 전체
● 프로세스의 일부로 만듦: agile, waterfall, 등등.
진행중인 상태를 정상적인 상태로 보장
● 작업을 매일, 매주, 매월 단위로 예약
● 정기적인 상태 검사 및 확인 수행
성공적인 네트워크 운영을 위한 세 가지 주요 이점은 운영 혹은 구축/구성할 네트워크 시스템을 일괄 통합 관리할
수 있는 자동화툴로 ANSIBLE을 사용할 수 있습니다.
ANSIBLE Network Automation
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
• 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
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
서버 정보 수집
• 서버 정보(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
파일 전송
• 제어노드(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
파일 전송_계속
• 제어노드(ansible 실행 서버) 에서 각 관리노드로 파일 전송
• copy 사용
test_file.txt 변경하지 않고 "재실행"
test_file.txt 파일 전송
test_file.txt 변경하고 "재실행"
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
파일 실행
• 실행파일(shell script) 실행
• script 사용
[root@client ~]# cat script.yml
---
- name:
hosts: all
tasks:
- script: /root/shell.sh
/root/shell.sh
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
파일/디렉토리 권한 변경
• 특정 파일/디렉토리 권한 변경
• 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
파일/디렉토리 권한 소유권 변경
• 특정 파일/디렉토리 소유권 변경
• 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
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
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
팩키지 설치/업데이트
• 팩키지 설치
• yum 사용
[root@client ~]# cat package_install.yml
---
- name:
hosts: all
tasks:
- yum:
name: telnet
state: latest
telnet 최신 버전 설치
48. 48
서비스 기동 및 시작 설정
• 서비스 시작/정지/재기동
• service 사용
[root@client ~]# cat service_restart.yml
---
- name:
hosts: rhv
tasks:
- service:
name: httpd
state: restarted
enabled: yes
httpd 서비스 재기동 및 부팅시 자동시작 설정
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
웹 서비스 상태 확인_계속
• 웹 서비스 상태 확인
• 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
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
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