글
Django 테스트 환경 구축 #1
Python Django
2019. 1. 2. 11:32
반응형
- CentOS 내 Python 3.6 설치
- centos-release-scl 설치
- python 3.6 활성화 시키기
- venv 설치
- py36-venv를 설치 및 생성
- 활성화
- 실행하면 프롬프트가 바뀜
- django 설치
- 버전 확인
- python 실행 후
- import django
- django.VERSION 을 하면 버전이 표시 됨
- django 프로젝트 만들기
- Project 생성
- 위 명령어를 통해 venv 환경으로 진입
- #django-admin startproject myweb
- myweb을 새로 생성함
- 생성된 myweb 프로젝트의 폴더 내용은 다음과 같이 구성 됨
- Project 생성
- django 서버 실행
- 실행 중단은 CTRL + C
- 서버포트를 변경하고자 할 경우는
- ./manage.py runserver 8080 의 형태로 사용할 경우 위와 같이 127.0.0.1로 Host가 생성되어 외부 접속이 불가한 경우가 발생 함
- 위와 같이 표현되면, CTRL+C를 눌러 중지 시키고
- ./manage.py runserver hostip:8080으로 입력
- 테스트의 경우 192.168.85.4이므로
- ./manage.py runserver 192.168.85.4:8080 으로 실행
- 웹 브라우저를 통해 다시 접속하여 아래와 같은 경우가 발생 할 수 있음(대부분의 경우 발생)
- 위의 경우는 host를 지정하지 않아 발생하는 문제로 아래 순서대로 수정
- CTRL+C를 눌러 서비스를 종료
- ls를 통해 디렉토리를 조회하여 settings.py를 찾아 이동하여 편집 실행
- settings.py파일에서 다음 부분을 찾아 수정
- 28라인의 ALLOWED_HOSTS = []를 다음과 같이 수정
- ALLOWED_HOSTS = ['*']
- 혹은
- ALLOWED_HOSTS = ['192.168.85.4']
- 저장 후 종료
- 이후 다시 서버를 실행
- 성공 화면
- 기본화면이 표시됨
글
YAML with AWX : 각 Node(대상 서버)에 사용자 생성
AWX
2019. 1. 2. 11:28
반응형
- AWX를 이용하여 NODE에 사용자 생성
- 사용자 생성을 위하여 다음과 같은 Yaml파일을 생성
- #vi /var/lib/awx/projects/awxtest/adduser.yml
들여쓰기 및 공백은 위 이미지처럼 맞추어야 함
---
- name: add user to node
hosts: all
vars:
- new_userid: atest
tasks:
- name: check exist users
shell: cat /etc/passwd | grep {{ new_userid }} || echo "NULL"
register: rval- name: add user
shell: /usr/sbin/useradd {{ new_userid }}
when: rval.stdout =='NULL'생성할 아이디 : atest
- 총 Task는 2개로
- 첫번째는 해당 User가 존재하는지 여부를 체크
- 두번째는 결과값이 NULL일 경우 생성
- Ansible-playbook을 이용한 사전 테스트
- AWX에 적용하기 전에 ansible-playbook으로 사전 테스트 진행
- 각 노드들의 /etc/passwd 파일 확인 (atest가 없음을 확인)
- 테스트를 위하여 인벤토리 파일 생성 (hosts.inv)
- #vi /var/lib/awx/projects/awxtest/hosts.inv
[all] 192.168.85.4 192.168.85.5 - 내용 확인
- #cat /var/lib/awx/projects/awxtest/hosts.inv
- 수행
- #ansible-playbook -i hosts.inv adduser.yml
- OK=3, Changed=2가 나오면 성공
- 실패한 경우 들여쓰기 및 공백 확인
- Node1, Node2에서 결과 확인
- AWX에서 테스트를 위하여 생성된 atest 유저 삭제
- #userdel -r atest ; -r은 홈디렉토리 등 모두 삭제하는 옵션
- Node1, Node2에서 모두 삭제 확인
- -
- AWX에 적용
- AWX에서 신규 Template 생성
- NAME : Adding User to Nodes
- INVENTORY : AWX_TEST
- PROJECTS : awx_test
- PLAYBOOK : adduser.yml
- CREDENTIAL : AWX_CRED
- 를 눌러 저장
- 생성된 Template 확인
- 를 눌러 실행
- 실행 결과 확인
- 저장된 내용 확인
- #cat /etc/passwd
- -
- 목표
- Yaml을 이용하여 Node에 사용자 생성
- yml 기본 문법 확인
- 변수 선언 후 사용은 {{ 변수명 }} 를 이용
- Register를 이용 후 When 조건 사용 이해
- 추가 목표
- yml을 이용하여 사용자 삭제
- yml을 이용하여 사용자 패스워드 부여 (ssl 등을 이용해야 하며, Yaml외 언어 코딩이 필요할 수 있음)
글
YAML with AWX : Using Register:
AWX
2019. 1. 2. 11:28
반응형
- Yaml파일 내에서 실행 결과를 저장하여 사용하는 방법
- 예약어는 register: 를 사용
- 위 소스는 doc.tar파일을 각 Node에 doc2.tar로 전송 후 tar를 이용하여 압축을 풀어내는 소스
- 선행 조건 : 각 Node에 /testdir/doc2 폴더가 생성되어 있어야 함
- .
- 위 소스의 12라인
- register: result 문장은 tasks의 copy에 대한 결과를 result에 저장함
- 14~15라인 : result step 1로 실행 블록 설정
- debug: var=result 문장은 result를 var변수에 넣고 debug로 화면에 출력 함
- 각 결과에 대한 자세한 설명 내용은
- Ansible 문서인 https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module 을 참조
- 위 결과를 확인 하면 각 노드별로 실행에 대한 결과 값이 저장되어 있음
- 다시 한번 실행 해 보면
- 처음 실행과 틀린 점은 재 실행시 changed가 false로 변경되며, extract tar의 task가 실행되지 않음
- .
- 핵심 사항
- 본 문서의 목적은 register:를 활용하는 것
- ①의 실행 결과를 result에 저장하고
- ②에서 result.changed로 전달된 값을 비교하여 변경되었다는 리턴값이 들어오면
- ③의 task를 실행하게 됨
- 각 항목을 접근하기 위해서는
- result.changed, result.checksum... 등으로 c/c++의 구조체나 객체를 접근하는 방식으로 사용하면 됨
- 위에 제공된 소스는 result.changed == true를 비교하였으나, 좀 더 정확한 내용은 result.failed == false로 사용하는 것을 권장 함
- .
- AWX에 적용 및 실행
- [WARNING]에 대해서는 추가 분석 필요
- .
- 추가 실습
- 디렉토리를 생성하는 task의 추가
- 디렉토리 및 파일 전송이 모두 완료된 경우 tar 압축 해제






