16년 09월 현재, ansible로 자동화 환경을 구축하면서 참고한 유용한 책이나 사이트 등을 공유합니다.

 

국내에서는 다음카카오나 네이버등의 회사에서 잘 사용이 되는 것 같아 보이고,

그런쪽은 역할론으로서 데브옵스들이 많이 있는것 같습니다.

 

제가 하려는 방식은 많은 장비를 유지보수/관리 하고자 하는 목적이며 궁극적으로는 아래와 같아지고 싶습니다.

http://www.zdnet.co.kr/news/news_view.asp?artice_id=20160627165341&type=det&re=

 

 

약간 보수적으로 진행이 되고있기도 하고 개인의 역량이 많이 부족한 상태라 빠른 진척이 되진 않겠지만,

가능한 지속적인 결과를 내고자 합니다.

 

참고문서 : ansible 설정관리

              http://knight76.tistory.com/2858

              (번역된 책이라 이해하는데 어려움이 있었지만, 필요할때 찾아보면 해답이 들어있는 아주 유용한 책입니다.)

 

사이트 :

[개요]
 - http://www.slideshare.net/deview/1a7ansible


--------
[playbook 구성]
 - http://docs.ansible.com/ansible/playbooks_intro.html
 - https://github.com/ansible/ansible-examples
 - http://theeye.pe.kr/archives/2597

 * ansible - postgresql 설치 관련
 - https://danielwestermann.com/tag/ansible/
 - https://github.com/Kami/ansible-postgresql
 - https://github.com/lesovsky/ansible-postgresql-on-el6
 - https://github.com/galaxyproject/ansible-postgresql/tree/master/tasks
 - https://github.com/azavea/ansible-postgresql/blob/develop/tasks/main.yml
 - https://github.com/5ak3t/ansible-postgresql/blob/master/roles/createdb/tasks/main.yml

 * ansible - rhcs 관련

 - https://github.com/jinfengyang/ansible-rhcs

--------
[참조]
 - http://zigispace.net/849

 

 

 

 

[RHCSA] 실습 single mode, 네트워크 설정

------------------------------------------------------------------------------------------------------------------------

Study | RHCSA | share | Created : 21 Apr 2016 | Last Modified : 21 Apr 2016

------------------------------------------------------------------------------------------------------------------------



 - VM으로 RHEL7환경에서 실습하게 됩니다.


문제

1. root 패스워드를 'abc123'으로 구성하시오

2. 아래 네트워크 환경으로 셋팅하세요

 IP = 172.17.20.100

 SubnetMask = 255.255.255.0

 Gateway = 172.17.20.1

 DNS = 172.17.222.99


해결

1. root 패스워드를 'abc123'으로 구성하시오

 - VM장비 restart (cold boot)

 - GRUB2 화면에서 커널 파라메터로 접속

 - 'e'를 클릭하여 편집모드로 접속


 - linux16 이 있는 부분(커널)의 맨 마지막으로 가서 "init=/bin/bash"입력 후 Ctrl+x로 부팅


- 아래와 같이 패스워드를 묻지 않는 프롬프트로 바로 접속함


 - 현재는 root 파일시스템이 read only 상태이기때문에 rw로 마운트를 해주어 커널의 정보를 변경 할 수 있도록 한다

 # mount -o rw,remount /

 # vim /etc/selinux/config

    SELINUX=disabled 로 수정


- 패스워드 변경

 # passwd root

   : 변경

 - 부팅 : 강제로 재부팅하면 됨 (systemd가 안올라 왔기때문에 reboot 명령어 안먹음)

   구지 명령어로 하고싶다면

 # echo 1 > /proc/sys/kernel/panic

 # exit




2. 아래 네트워크 환경으로 셋팅하세요

 IP = 172.17.20.100

 SubnetMask = 255.255.255.0

 Gateway = 172.17.20.1

 DNS = 172.17.222.99


 - 컨피그 파일 수정

 # vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

IPADDR=172.17.20.100

GATEWAY=172.17.20.1

NETMASK=255.255.255.0

DNS=172.17.222.99

# systemctl stop network

# systemctl start network

 

 - DNS 파일 확인 (이 작업이 되어야 후속작업 가능)

 # cat /etc/resolv.conf

 # ping 172.17.20.1 연결됨 확인








'Linux' 카테고리의 다른 글

[LINUX] bonding 구성  (0) 2016.04.21
[LINUX] RHEL7 설치  (0) 2016.04.21
[LINUX] Virtual Machine 설정  (0) 2016.04.21
[LINUX]리눅스 커널 정보 파일시스템 (/proc, /sys )  (0) 2016.04.20
[RHCSA] 시험 내용 간략 후기  (1) 2016.04.20

[LINUX]  bonding 구성

------------------------------------------------------------------------------------------------------------------------

Study | RHEL7 | LAB | Created : 21 Apr 2016 | Last Modified : 21 Apr 2016

------------------------------------------------------------------------------------------------------------------------


RHEL7 에서도 기존과 같이 본딩 구성이 가능하다.

하지만, Vitrual Network을 설정하여 Bonding을 하는 것보다 ip addr 명령어로 IP만 추가하는 것이 더 간단 할 수도 있다




Bonding

 - 여러개의 ethernet카드를 하나로 합쳐서 사용

 - Windows의 Teaming 과 동일한 개념

 - 기본 round-robbin 방식으로 구성 (A-A, 수신은 두배지만, 나가는 것은 번갈아가며)

 - Active Standby 구성 가능

 - ifcfg-bond0 에 IP가 들어가 있어야 한다.

 - bond0 는 커널의 모듈로 동작을 한다.

   . 커널이 인식을 할 수 있도록 설정 해 줘야함

 - 반드시 NetworkManager.service 를 stop 후 설정하여야 한다.


구성

1. 2개의 Network 확인

[root@vm14 바탕화면]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
    inet 59.29.224.144/24 brd 59.29.224.255 scope global dynamic eth0
       valid_lft 777284sec preferred_lft 777284sec
    inet6 fe80::5054:ff:fe86:6f25/64 scope link
       valid_lft forever preferred_lft forever
4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:07:e3:96 brd ff:ff:ff:ff:ff:ff


2. NetworkManager disable

[root@vm14 바탕화면]# systemctl stop NetworkManager.service
[root@vm14 바탕화면]# systemctl disable NetworkManager.service
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'


3. 네트워크 파일 수정

[root@vm14 network-scripts]# cat ifcfg-bond0
DEVICE=bond0
BOOTPROTO=dhcp
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
 => mode값 0: round-robbin , 1 : active-backup , default : round-robbin

      miimon : active-backup인 환경에서 active 노드의 상태를 체크 하는 인터벌
[root@vm14 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@vm14 network-scripts]# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes


4. 커널모듈 확인 후 설정

 - 커널 모듈의 경로

[root@vm14 3.10.0-229.el7.x86_64]# pwd
/lib/modules/3.10.0-229.el7.x86_64

[root@vm14 3.10.0-229.el7.x86_64]# cat modules.dep | grep bondi
kernel/drivers/net/bonding/bonding.ko:

 - 모듈 등록

[root@vm14 network-scripts]# cd /etc/modprobe.d
[root@vm14 modprobe.d]# cat > bond.conf
alias bond0 bonding
[root@vm14 modprobe.d]# cat bond.conf
alias bond0 bonding

5. network 재시작

[root@vm14 modprobe.d]# systemctl stop network
[root@vm14 modprobe.d]# systemctl start network
* NetworkManager.service를 올리면 안된다!!!! 지워버리는게 나음


6. 확인

 - bond0에 IP등록, master / slave 내용 확인함

[root@vm14 modprobe.d]# ip a
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
    link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
    link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 52:54:00:86:6f:25 brd ff:ff:ff:ff:ff:ff
    inet 59.29.224.144/24 brd 59.29.224.255 scope global dynamic bond0
       valid_lft 777581sec preferred_lft 777581sec
    inet6 fe80::5054:ff:fe86:6f25/64 scope link
       valid_lft forever preferred_lft forever

 - Active 인 것은 어떻게 확인하지?

[root@vm14 modprobe.d]# cd /proc/net
[root@vm14 net]# cd bonding
[root@vm14 bonding]# ls -lrt
합계 0
-r--r--r--. 1 root root 0  4월 21 15:02 bond0
[root@vm14 bonding]# pwd
/proc/net/bonding
[root@vm14 bonding]# cat bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:86:6f:25
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:07:e3:96
Slave queue ID: 0

- 이중화 확인

  . default로 롤백은 되지 않음






리눅스  RHEL7 설치

------------------------------------------------------------------------------------------------------------------------

Article | RHEL7 | LAB | Created : 21 Apr 2016 | Last Modified : 21 Apr 2016

------------------------------------------------------------------------------------------------------------------------




VM 환경에서 RHEL 7 설치하는 내용을 공유


1. 설치 파일 준비

 - CD,  nas의 iso, USB부팅 디스크 등 설치파일을 준비

2. 설치 시 맨 위의 화면을 선택하여 바로 설치하도록 한다.

 - 두번째는 미디어파일을 먼저 확인

 - 세번째 : 복구모드


3. 언어 확인


4. 설치 요약 - 느낌표 부분은 전부 확인해 주도록 한다


5. 소프트웨어 선택

 - 최초 설치 후 운영 중 추가 설치도 가능 (rpm)


 - 디스크 생성, 수동으로 하나씩 가능


- 네트워크 설정 : IP가 이전에 dhcp 로 설정한 내용으로 변경되었는지 확인


 - 여기서 계정 생성, 설치중 생성해도 됨


 - 완료 후 재부팅


- VM으로 설치 된 client 확인

리눅스  Virtual Machine 설정

------------------------------------------------------------------------------------------------------------------------

Study| RHEL7 | LAB | Created : 21 Apr 2016 | Last Modified : 21 Apr 2016

------------------------------------------------------------------------------------------------------------------------


VM 환경을 구성하기 위하여



Bridge 구성


<구조에 대한 간단한 그림 등>


[root@station14 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@station14 network-scripts]# cat ifcfg-br0
DEVICE=br0
BOOTPROTO=dhcp
TYPE=Bridge
ONBOOT=yes
[root@station14 network-scripts]# cat ifcfg-eno1
DEVICE=eno1
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0


# systemctl stop NetworkManager.service

# systemctl stop network

# systemctl start network

# systemctl start NetworkManager.service


 *네트워크 작업 시 ifcfg-eno1.old 등의 파일이 존재하면 안됨 해당 파일도 컨피그로 읽게됨

   이로 인하여 서비스 재시작 시 아래와 같은에러가 발생하였고, 재부팅하여 해결

    systemctl status network

    Failed to start LSB: Bring up/down networking



VM 구성

- Hypervisor

- libvirt 

  . Hypervisor를 사용하기 위하여 각 벤더의 제품을 컨트롤 해준는 프로그램 (KVM등)

  . 전체적인 자원 관리, Hypervisor의 resource 관리

  . libvirt.so 파일 , virt-manager로 GUI 환경 제공

  . 스토리지 자원에 대한 관리 가능

  . virtual networking 환경 제공 (private network : virbr0, bridge)

    * bridge 환경을 미리 설정해야한다

 - virt-install 의 command 나 GUI로 실습을 해 보자


실습


1. 설치파일 가져오기

  - 설치 파일을 가져와서 설치를 하던가 CD 를 nfs로 마운트 하던가..

[root@station14 ~]# wget ftp://server1/pub/rhel*
--2016-04-21 12:18:40--  ftp://server1/pub/rhel*
           => ‘.listing’
Resolving server1 (server1)... 10.100.0.254
Connecting to server1 (server1)|10.100.0.254|:21... connected.


2. package 설치

 - libvirt : libvirt.so, libvirtd, virsh 등

 - qemu-kvm : hypervisor

 - virt-manager : GUI tool

 # yum -y install libvirt qemu-kvm virt-manager

[root@station14 ~]# yum -y install libvirt qemu-kvm virt-manager
Loaded plugins: langpacks
HighAvailability                                                                | 4.1 kB  00:00:00    
ResilientStorage                                                                | 4.1 kB  00:00:00    
base                                                                            | 4.1 kB  00:00:00    
classRPMs                                                                       |  951 B  00:00:00    
errataRPMs                                                                      |  951 B  00:00:00   


3. libvirt 데몬 실행

# systemctl start libvirtd

# systemctl enable libvirtd


# systemctl stop libvirtd

# systemctl start libvirtd


#ip a

 -> virbr0가 올라와 있는지 확인

[root@station14 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 80:c1:6e:fc:f1:53 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::82c1:6eff:fefc:f153/64 scope link
       valid_lft forever preferred_lft forever
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 80:c1:6e:fc:f1:53 brd ff:ff:ff:ff:ff:ff
    inet 59.29.224.192/24 brd 59.29.224.255 scope global dynamic br0
       valid_lft 774344sec preferred_lft 774344sec
    inet 10.100.0.14/24 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::82c1:6eff:fefc:f153/64 scope link
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 52:54:00:14:0a:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
    link/ether 52:54:00:14:0a:fa brd ff:ff:ff:ff:ff:ff


- #virt-manager 확인


4. Virtual Machine 생성

 - name : vm14

 - cpu : 2

 - memory : 2G

 - disk : 10G file, /dev/sda7, /dev/vg0/lv-vm1등등 원하는 것

 - NW : bridge로  br0, default

 - # lscpu 로 확인

[root@station14 ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Model name:            Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
Stepping:              7
CPU MHz:               3091.160
BogoMIPS:              6184.35
Virtualization:        VT-x

 - # free -m

[root@station14 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7872         711        2429         266        4731        6630
Swap:           511           0         511


- VM 생성





* 파일로 선택하여 디스크 생성 시 /var에 생성되기 때문에 기본 사이즈 확인할것


* 미리 브릿지 설정을 했기때문에 자동으로 브릿지로 설정 됨



 * 위로 키를 올려서 바로 설치하도록 한다






리눅스 커널 정보 파일시스템 (/proc, /sys )

------------------------------------------------------------------------------------------------------------------------

Article | Linux | info | Created : 20 Apr 2016 | Last Modified : 21 Apr 2016

------------------------------------------------------------------------------------------------------------------------



Linux Hardware Discovery Tool
- dmesg
  : 커널이 인식한 하드웨어 / 파일시스템 / 아키텍쳐 등  정보를 출력

  . 내용

    [부팅 후 지나간 시간] 상세 로그


     => 메세지를 확인하면 각 디바이스가 언제, 어떤 순서로 인식이 되었는지 확인 가능능


  . /var/log/dmesg : 부팅시 커널이 인식한 디바이스에 대한 정보 로깅 


Kernel Hardware Info
- /proc
  . 현재 실행중인 프로세스에 대한 정보, 하드웨어에 대한 정보가 덤프형식으로 생성되어 보여줌

  . 메모리에 실행 되어있는 실제 정보를 수집


- /sys

  . 커널이 하드웨어 정보를 기록함

  . udev가 동작할때 필요한 하드웨어 정보를 제공함

  . [std1@station14 sys]$ ls

    block  : 시스템에 있는 각 block device에 대한 정보

    bus  : 각 device에 어떤 device driver가 할당되어있는지의 정보

    class  : device를 역할에 따라 구분

              예를들어 /sys/class/net에는 network interface들에 대한 정보가 있고

              /sys/class/input에는 키보드나 마우스와 같은 input 장치에 대한 정보가 있다

    devices   : 시스템의 장치에 대하여 어떻게 연결되어있는지에 대한 종합 hierarchy 정보

    module     : 각 로드 되어있는 커널 모듈에 대한 정보를 모듈 파라메터 값 등의 디렉토리로 저장하고 있음

    firmware ,fs, hypervisor, kernel, power


Kernel Parameter Tuning

 - /proc/PID/

  . 각 프로세스에 대한 내용이 파일이나 심볼릭링크로 되어있음

 - /proc/sys/

  . 튜닝이 가능한 파라메터들이 위치함

  . 메모리의 값이므로 Dynamic 하게 online으로 수정이 가능함

  . # sysctl 명령어 사용

 - 튜닝방법

  . /etc/sysctl.conf, /etc/sysctl.d

  . 기본 위치는 /usr/lib/sysctl.d/*.conf 이지만, 여기는 시스템 기본값이라고 생각하고

  . 실제 운영중 튜닝이 되는 곳은  /etc/sysctl.conf 파일을 수정하는 것이 운영상 편리함 (영구)

 - UNIT

  . systemd-sysctl.service

 - 확인

      # sysctl -a

 - 수정

[root@station14 ~]# sysctl fs.file-max
fs.file-max = 799043
[root@station14 ~]# sysctl -w "fs.file-max=11000"
fs.file-max = 11000
[root@station14 ~]# sysctl fs.file-max
fs.file-max = 11000










'Linux' 카테고리의 다른 글

[RHCSA] 실습 single mode, 네트워크 설정  (0) 2016.04.21
[LINUX] bonding 구성  (0) 2016.04.21
[LINUX] RHEL7 설치  (0) 2016.04.21
[LINUX] Virtual Machine 설정  (0) 2016.04.21
[RHCSA] 시험 내용 간략 후기  (1) 2016.04.20

## 아래내용은 본인이 작성한 내용으로, 정확한 정보가 아니니 공식 홈페이지에서 추가 확인 하셔야 합니다.


[RHCSA] 시험 내용 간략 정리

------------------------------------------------------------------------------------------------------------------------

Article | Linux | RHCSA | Created : 20 Apr 2016 | Last Modified : 20 Apr 2016

------------------------------------------------------------------------------------------------------------------------


* RHCSA

 - 리눅스 서버 관리를 위한 기본 자격증

 - 비용 : ₩280,000(엄청비쌈)

 - 시험 등록 방법 

   . 아래 링크에서 일정 확인 후 등록

      http://www.apac.redhat.com/training/dates/EX200&contury=col_KR

   . 기재한 메일로 해당 날짜에 시험이 가능한지 불가능한지 답장이 옴

   . 시험일 기준 2주 전까지 결제 완료

 - 시험방법

   . 실제 서버에서 명령어를 쳐서 실행하는 100% 실습형 시험

   . 두시간 반 정도의 시간이지만 확인까지 하려면 결코 많은 시간이 아님

   . 총 18문제

   . 합격 210점 / 만점 300점

   . 합격발표는 당일 메일로 발송

 - 주의사항

  . 시험 변경은 2주 전 가능

  . 항상 금요일 시험이라, 일정 확인해야합니다.

  . 블로그 기재 내용은 2016년 3월 기준입니다.


시험 범위

참고 : https://www.redhat.com/en/services/certification/rhcsa


시험 내용

 - 출제 된 내용에 대하여 이론적으로 정리하고 확인해 보려합니다.

   이후 블로그 글을 확인 해 주세요.

 - 계정생성, LDAP, AUTOFS, cron, LVM관리, swap 생성 등


시험시 주의사항

 1. 시험 시 사용할 수 있는 연습장을 주는데 , 이것을 충분히 활용

 2. 최초 접속 시 싱글유저모드에서 root 패스워드 변경해야함

 3. RHEL7과 RHEL6의 싱글모드 설정 방법은 다르다!

 4. 시험 시 LVM작업을 먼저 하는 것이 좋다.

    - 실수 할 경우가 있고, 실수하면 VM을 재 할당받고 다시 시작해야함



'Linux' 카테고리의 다른 글

[RHCSA] 실습 single mode, 네트워크 설정  (0) 2016.04.21
[LINUX] bonding 구성  (0) 2016.04.21
[LINUX] RHEL7 설치  (0) 2016.04.21
[LINUX] Virtual Machine 설정  (0) 2016.04.21
[LINUX]리눅스 커널 정보 파일시스템 (/proc, /sys )  (0) 2016.04.20

+ Recent posts