AWX on AWS(EC2) 구축

8356 단어 EC2AnsibleawxAWS

배경



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 Typet2.midium에서 시작했습니다.

포트는 80, 443, 22를 열고

System Requirements
The system that runs the AWX service will need to satisfy the following requirements
  • At least 4GB of memory
  • At least 2 cpu cores
  • At least 20GB of space
  • Running Docker, Openshift, or Kubernetes
  • If you choose to use an external PostgreSQL database, please note that the minimum version is 10+.

  • AWX 도입



    아래의 AWX 공식 리포지토리의 마크 다운에 방법이 쓰여 있으므로, 이것을 기준으로 진행합니다

    AWS를 설치하기 전에 다음 패키지가 필요하므로 준비하겠습니다.

    Prerequisites
    Before you can run a deployment, you'll need the following installed in your local environment:
  • Ansible Requires Version 2.8+
  • Docker
    A recent version
  • docker Python module
    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.
  • GNU Make
    - Git Requires Version 1.8.4+
  • Python 3.6+
  • Node 10.x LTS version
    This is only required if you're building your own container images with use_container_for_build=false
  • NPM 6.x LTS
    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 만 실행합니다.

    요약



    어떻게 든 설치할 수있었습니다.
    여러 가지 만져보고 싶습니다.

    좋은 웹페이지 즐겨찾기