AWX on AWS(EC2) 구축
배경
AWX를 만지고 싶다고 AWS에 구축하려고 했는데, 공식의 구성은 꽤 중복되어 과금이나 바보
그래서 EC2에 설치하고 실행해 보겠습니다.
할 일
EC2를 세우고 거기에 AWX를 도입합니다.
AWS 환경
품목
버전
AMI
Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-08046c40513c3265e (64비트 x86)
우분투
Ubuntu Server 18.04 LTS(HVM)
건설
EC2를 세우다
다음 요구사항에 따라 작성합니다.
나는 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type
를 t2.midium
에서 시작했습니다.
포트는 80, 443, 22를 열고
System Requirements
The system that runs the AWX service will need to satisfy the following requirements
EC2를 세우고 거기에 AWX를 도입합니다.
AWS 환경
품목
버전
AMI
Ubuntu Server 18.04 LTS (HVM), SSD Volume Type - ami-08046c40513c3265e (64비트 x86)
우분투
Ubuntu Server 18.04 LTS(HVM)
건설
EC2를 세우다
다음 요구사항에 따라 작성합니다.
나는 Ubuntu Server 18.04 LTS (HVM), SSD Volume Type
를 t2.midium
에서 시작했습니다.
포트는 80, 443, 22를 열고
System Requirements
The system that runs the AWX service will need to satisfy the following requirements
AWX 도입
아래의 AWX 공식 리포지토리의 마크 다운에 방법이 쓰여 있으므로, 이것을 기준으로 진행합니다
AWS를 설치하기 전에 다음 패키지가 필요하므로 준비하겠습니다.
Prerequisites
Before you can run a deployment, you'll need the following installed in your local environment:
A recent version
This is incompatible with docker-py. If you have previously installed docker-py, please uninstall it.
We use this module instead of docker-py because it is what the docker-compose Python module requires.
- Git Requires Version 1.8.4+
This is only required if you're building your own container images with use_container_for_build=false
This is only required if you're building your own container images with use_container_for_build=false
Ansible 설치
리포지토리를 업데이트하여 최신 버전을 설치합니다.
sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible -y
apt 표준 리포지토리라면 Version이 2.8까지 오르지 않으므로 다음과 같은 에러가 표시되므로 주의
hoge@hogehoge:~/awx/installer$ ansible-playbook -i inventory install.yml
/usr/lib/python2.7/dist-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
from cryptography.exceptions import InvalidSignature
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
The error appears to have been in '/home/ubuntu/awx/installer/roles/local_docker/tasks/compose.yml': line 39, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- block:
- name: Start the containers
^ here
Docker 설치
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
GNU Make 버전 확인
이것은 어쩌면 데포에 들어있을 것입니다.
$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Git 버전 확인
이것도 데포로 들어갔다.
$ git --version
git version 2.17.1
Python3.7 설치
$ python3 --version
Python 3.6.9
3.6은 이미 들어있는 것 같습니다만, 곧 EOL이 되기 때문에 3.7로 할 때.
나중에 awx를 git pull 한 후 pipenv로 버전 고정
(있는 사람) pip 설치 및 Docker python 모듈 설치
sudo apt install python-pip -y
pip install docker
node, npm 설치
sudo apt install nodejs npm -y
sudo npm install npm --global
AWX를 Git 저장소에서 pull
git clone https://github.com/ansible/awx.git
파이썬 버전 고정
# 必要なライブラリのインストール
sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev -y
# pyenvをGitリポジトリからクローン
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# バッシュ設定
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
# 3.7.9インストール
pyenv install 3.7.9
# ローカルは3.7.9に固定
cd awx/
pyenv local 3.7.9
이런 느낌
~/awx$ python --version
Python 3.7.9
이것을하지 않으면
TASK [local_docker : Start the containers] ***************************************************************************************fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (Docker SDK for Python: docker (Python >= 2.7) or docker-py (Python 2.6)) on ip-10-2-1-31's Python /usr/bin/python3. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please
consult the documentation on ansible_python_interpreter, for example via `pip install docker` or `pip install docker-py` (Python 2.6). The error was: No module named 'requests'"}
각종 설정을 실시
설치시 비밀번호 및 포트 설정을 인벤토리 파일에 설정합니다.
vi ~/awx/installer/inventory
install용 playbook 실행
설치 프로그램 실행
cd ~/awx/installer
sudo ansible-playbook -i inventory install.yml
문제
이때 다음과 같은 문제로 조금 걸렸습니다.
pyenv에서 python3을 표준으로 사용했지만 그 때문에 작동하지 않습니다.
~/awx/installer/inventory
에는 python3을 사용하는 명령이 들어 있으므로 파이썬으로 변경합니다.pip에서 docker-py와 docker를 모두 실행했습니다.
docker-py는 이제 docker에 포함되어 있으므로 한 번 모두 삭제 한 다음 docker 만 실행합니다.
요약
어떻게 든 설치할 수있었습니다.
여러 가지 만져보고 싶습니다.
Reference
이 문제에 관하여(AWX on AWS(EC2) 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/garakutayama/items/4068d14a44ec23ce1e56
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWX on AWS(EC2) 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/garakutayama/items/4068d14a44ec23ce1e56텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)