도쿠마루 책의 환경 구축을 편하게 하는 툴을 Ansible와 쉘로 만들어 보았다
자동화할 수 있는 프로세스가 얼마나 있는지 확인
도쿠마루 책의 연습 환경의 구축 방법은, 서적의 제2장에서 해설되어 있습니다. 이 구축 방법 중 모두가 자동화 가능이라고 하는 것은 아닙니다. 자동화 여부를 아래 표에 정리했습니다.
행정
자동화 여부
필요한 소스 VM 파일 다운로드
예 1
Firefox 설치
예 2
VirtualBox 설치
예
호스트 네트워크 관리자 설정 (VirtualBox)
예
VM 가져 오기 (VirtualBox) 및 설정
예
hosts 파일에 FQDN 등록
예
OWASP ZAP 설치
예
OWASP ZAP 초기 설정
불가
FoxyProxy-Standard 설치
불가
이번에는 Ubuntu가 설치되어 있는 VM에 환경 구축을 실시하는 것을 상정해 툴을 구축했기 때문에, Firefox의 인스톨은 툴에서는 실시하지 않습니다. 따라서 7할 5분의 행정은 자동화 가능하다는 것을 위의 표에서 알 수 있습니다.
환경 구축 지원 도구 구현
툴의 구현은, 실행부는 쉘로 구현해, 내부에서 Ansible가 실행되도록(듯이) 하고 있습니다. 소스는 필자의 GitLab에 있습니다. 자유롭게 다운로드하여 사용하실 수 있습니다 (MIT 라이센스). 구축 매뉴얼 도 놓고 있습니다.
build.sh (실행 부)
#!/bin/bash
apt install -y ansible wget
ansible-playbook -i inventory playbook.yml
playbook.yml (2021/5/19 개정)
- hosts: localhost
environment:
zap_ver: 2.10.0
become: yes
tasks:
- name: Download sources
shell: cat auth.txt | xargs -n 2 sh -c 'wget -P /home/wasbook/ --http-user=$0 --http-password=$1 https://wasbook.org/download/wasbook.zip' && \
unzip -od /home/wasbook/wasbook /home/wasbook/wasbook.zip warn=False && \
chown -R wasbook /home/wasbook/wasbook warn=False && \
chgrp -R wasbook /home/wasbook/wasbook warn=False
- name: Download VM image file
shell: cat auth.txt | xargs -n 2 sh -c 'wget -P /home/wasbook/ --http-user=$0 --http-password=$1 https://wasbook.org/download/wasbook.ova' && \
chown wasbook /home/wasbook/wasbook.ova warn=False && \
chgrp wasbook /home/wasbook/wasbook.ova warn=False
- name: Install Open JDK 11
apt:
name: openjdk-11-jdk
- name: Install OWASP ZAP
shell: wget https://download.opensuse.org/repositories/home:/cabelo/xUbuntu_18.04/amd64/owasp-zap_{{ ansible_env.zap_ver }}_amd64.deb -P /home/wasbook/ warn=False && \
dpkg -i /home/wasbook/owasp-zap_{{ ansible_env.zap_ver }}_amd64.deb
- name: Register hosts
shell: echo "192.168.56.101 example.jp api.example.net trap.example.com" >> /etc/hosts
- name: Add oracle vbox 2016 keys
shell: wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - warn=False && \
add-apt-repository "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian bionic contrib"
- name: Install Virtual Box
apt:
name: virtualbox-6.0
update_cache: yes
- name: Change HOME
shell: export HOME=/home/wasbook
- name: Import VM
shell: vboxmanage import --options keepallmacs /home/wasbook/wasbook.ova && \
vboxmanage hostonlyif create && \
vboxmanage modifyvm wasbook --nic1 nat && \
vboxmanage modifyvm wasbook --nic2 hostonly && \
vboxmanage modifyvm wasbook --hostonlyadapter2 "vboxnet0"
become_user: wasbook
- name: Restore HOME
shell: export HOME=/root
인벤토리
[localhost]
127.0.0.1 ansible_connection=local
인벤토리 파일을 수정하여 원격으로 VM에 환경을 구축할 수도 있습니다.
VM 상에 구축할 때의 유의 사항
VM상에서 구축할 때 OS마다 추천 하이퍼바이저를 기재해 둡니다.
Mac
Windows
Mac 용 하이퍼 바이저 (가상화 소프트웨어)를 비교해 보았습니다.에서 다루었지만 Mac 용 하이퍼 바이저의 Parallels Desktop의 일반 버전에서는 Nested Virtualization을 지원하지 않으므로이 도구는 제대로 작동하지 않습니다.
Oracle VirtualBox는 동작이 무겁기 때문에 연습 실행 환경 구축 용도에는 적합하지 않다고 생각합니다. (어디까지나 필자의 의견)
요약
도쿠마루 책의 연습 환경의 구축을 지원하는 툴을 Ansible와 쉘로 구현해 보았습니다. 실제로 Ubuntu의 인스톨 된 VM상에서 실행한 곳, 환경 구축이 원활하게 실행할 수 있었습니다. 이 도구는 MIT 라이센스입니다. 개량안의 제안, Issue의 발행, 풀 리퀘스트는 환영합니다.
Reference
Software Design 2018년 12월호
htps : // / cs. 오 c. 코 m/엔/ゔぃr 츠아아자치온/ゔぃr
소스 및 VM 파일을 다운로드하려면 책의 자격 증명이 필요합니다. 이번에 구현한 도구도 자격 증명이 필요합니다. ↩
VM에서 Linux를 사용하는 경우 설치 필요 없음 ↩
Reference
이 문제에 관하여(도쿠마루 책의 환경 구축을 편하게 하는 툴을 Ansible와 쉘로 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-vectorfield/items/f97341f05043eeefb412텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)