ansible- 1

박형준·2024년 3월 27일

네트워크 addhoc(애드혹): wifi를 통해 안테나를 이용해서 1대1로 데이터를 이동시키는 방법

web 그룹에 하드디스크 용량확인은 : df -h(애드혹)

*time 그룹을 재부팅 시켜 보기 ⇒ reboot


*ansible.cfg 파일 생성 ( ansible 환경설정 파일 )

  • [root@work 1day]# vi ansible.cfg

  • [root@work 1day]# ansible time -m command -a 'ip addr'
    • SSH password: work ⇒ guru 사용자 암호
    • BECOME password[defaults to SSH password]: work ⇒ guru 사용자 암호
  • ansible.cfg: ansible 설정 파일
  • defaults: 기본 값, privilege_escalation: 권한 상승(become)
  • time 그룹에게 명령어 실행(뒤에 유저와 패스워드 붙일 필요가 없어짐) -> password는 둘다 defaults에서 설정한 사용자 암호 work, 정보를 받아오기 위해서 일단 로그인

*inventory 파일에 nas 그룹을 생성 하고 servera, serverb를 추가 하고
inventory 에 추가가 잘 되었는지 확인 하고 , nas 그룹에 대해 하드 용량 확인

  • [root@work 1day]# ansible --list-hosts nas
    • SSH password: 1234
  • [root@work 1day]# ansible nas -m command -a 'df -h' ⇒ work
  • nas 그룹 확인
  • 하드디스크 용량 확인 (df -h)

vi 1.yaml 설정

  • [root@work 1day]# ansible-playbook -C 1.yaml
    • SSH password: work
      BECOME password[defaults to SSH password]: work
  • [root@work 1day]# ansible-playbook 1.yaml
    • SSH password: work
      BECOME password[defaults to SSH password]: work

*1.yaml 설정할 때 그룹 지정하고 싶으면 그룹 생성 후에 해야한다.

  • #ansible-playbook --syntax-check 1.yaml ⇒ 문법체크
    #ansible-playbook -C 1.yaml ⇒ 가상 실행
  • 들여쓰기 중요
  • vi로 yaml파일 만들어서 사용자 만들기
  • ansible playbook 실행하기 전 가상 실행
  • 플레이 북 문법 체크(syntax-check)
  • 플레이북 실행
  • 서버 A에서 tom 사용자 만든 것 확인

*VSCode 설치 및 연동 방법

  • 맨아래 사격 형 메뉴클릭 / Yaml 검색 ⇒ install / Reomote Deve~ ⇒ install / ansible 검색 ⇒ install
    • 엔터 / 우측 아래 Connect 클릭 / Linux 선택
  • VS code 설치, 체크하기
  • yaml 설치
  • remote development 설치
  • ansible 설치
  • ssh 연결

*web server 그룹에 아파치 설치

2.yaml

  • [root@work 1day]# ansible-playbook -C 2.yaml
    • SSH password:
      BECOME password[defaults to SSH password]:
  • latest: 최신 버젼
  • wep 서버 vi 작성
  • 플레이북 실행

*설치가 끝나면 ssh 로 servera 또는 b 로 접속해서 설치 확인 , 동작확인 (동작 시키지 는 않기)

  • 설치 되어 있고, 동작은 안함 inactive(dead)
  • 서버 A
  • 시스템 status 확인(멈춤)

*서비스 동작 시켜보기 ⇒ 기존 yaml 파일 아래 내용을 추가

  • #vi 2.yaml ⇒ 들여쓰기 가 매우~~ 중요
  • vi로 웹서버 시스템 동작
  • 플레이북 실행
  • 서버 A 동작 확인

*실행 시키고 동작 확인 / 접속 및 접속 (로컬PC에서 접속 http:192.168.137.11 ) ⇒ 접속 안됨. (방화벽 허용 안해서)

*방화벽에 httpd 허용

  • vi로 방화벽 시스템 관리 설정(
  • 플레이북 실행
  • A 서버 웹사이트 접속 확인

연결 안될 때는 들여쓰기, 오타, 네트워크 확인


*자주 사용하는 명령어와 옵션 을 짧게 만들기 = alias (별칭)

  • #alias 설정된것 확인
    • alias 별칭(anp)=’원본 명령어+옵션’
  • [root@work ~]# alias anp='ansible-playbook'
    • #vi ~/.bashrc ⇒ .bashrc 파일이 없으면 생성 하면됨.
  • #unalias anp
    • #alias
  • alias 별칭 지정
  • 경로도 지정 가능
  • alias 저장되어 있는 경로

*inventory 파일 구조 확인

  • [root@work 1day]# ansible-inventory --list
    • [root@work 1day]# ansible-inventory -i ./inventory --graph
  • 인벤토리 코드로 보는 법(list)
  • 인벤토리 트리로 보는 법(graph)

*SSH 인증키

  • 로컬사용자에게 개인키(SSH)가 있다면 관리자가 자동으로 로그인되도록 해줌.
    • *work 관리자서버에서 인증키를 생성 ⇒ 노드로 보내기 하고 ⇒ 환경설정파일 수정.

*ansible 명령어로 핑 보내기

  • ansible -m ping web

#vi 3.yaml

  • [root@work 1day]# anp -C 3.yaml
    [root@work 1day]# anp 3.yam
  • 서버에 핑 한번에 보내기
  • vi로 ssh key 권한 설정
  • 플레이 북으로 3.yuml 가상 실행
  • 플레이 북으로 3.yaml 실행
  • vi로 키 설정과 키 권한 설정
  • 플레이 북으로 가상 실행

*방법 - 2

  • 1day# ssh-keygen ⇒ 키젠 생성
    • #for i in {11..14}; do ssh-copy-id root@192.168.137.$i; done ⇒ 전송시키기
    • 암호는 1234

*ansible.cfg 파일 수정

  • #ansible -m ping web
  • .ssh 파일 확인
  • 192.168.137.11~14 까지 ip를 ssh에 등록
  • 유저를 root로 바꾸고 비밀번호 묻는 것을 false로 변환
  • 핑을 보내보면 passwd를 묻지 않는다.

*등록된 모드 노드 한번에 끄기

  • [root@work 1day]# ansible all -m command -a 'poweroff'
    • SSH password: work
    • BECOME password[defaults to SSH password]: work
  • 한번에 전원을 끄는 법 (all)

*파일을 원하는 서버로 전송해보기

  • html 문서 작성(배경 파란 색)

vi 2.yaml 맨 아래 아래에 내용을 추가

  • html 경로 /var/www/html/
  • index.html을 serverA /var 밑으로 카피

*테스트 하고 / 실행하고 / 접속 하기

  • serverA 아이피를 통해 웹페이지 확인

0개의 댓글