云网牛站
所在位置:首页 > Linux云服务器 > 在CentOS 7系统上安装Ansible AWX的方法

在CentOS 7系统上安装Ansible AWX的方法

2019-03-02 11:41:58作者:戴均益稿源:云网牛站

本文介绍使用Nginx反向代理和Letsencrypt证书在CentOS 7操作系统上安装Ansible AWX的方法,此安装将在Nginx上配置http重定向到https。可以先看在RHEL 8/CentOS 8系统上安装和配置Ansible一文。

 

在CentOS 7上安装Ansible AWX

1、请注意,此安装需要epel,你可以通过运行安装epel:

# yum -y install epel-release

2、安装基本依赖项

AWX要求某些软件包才能正常运行,可以通过在终端上运行以下命令来安装它们:

# yum -y install git gcc gcc-c++ lvm2 bzip2 gettext nodejs \

yum-utils device-mapper-persistent-data  ansible python-pip

3、安装Docker CE

参考:在特定环境中安装指定版本的Docker

4、安装docker python模块

AWX需要docker python模块,这是使用pip安装的:

# pip install -U docker-py

# pip show docker-py

Name: docker-py

Version: 1.10.6

Summary: Python client for Docker.

Home-page: https://github.com/docker/docker-py/

Author: Joffrey F

Author-email: joffrey@docker.com

License: UNKNOWN

Location: /usr/lib/python2.7/site-packages

Requires: requests, backports.ssl-match-hostname, docker-pycreds, ipaddress, websocket-client, six

5、Clone AWX from git

下一步是从git克隆AWX:

# git clone --depth 50 https://github.com/ansible/awx.git

Cloning into 'awx'...

remote: Counting objects: 8886, done.

remote: Compressing objects: 100% (4351/4351), done.

remote: Total 8886 (delta 5573), reused 6866 (delta 4368), pack-reused 0

Receiving objects: 100% (8886/8886), 9.24 MiB | 871.00 KiB/s, done.

Resolving deltas: 100% (5573/5573), done.

切换到安装程序目录,由于你需要在安装程序目录下执行ansible playbooks,请先导航到此目录:

# cd awx/installer/

检查库存文件,可以根据需要进行自定义:

# cat inventory

生成管理员密码:

# pwgen 15

生成AWX密钥:

# pwgen -N 1 -s 30

pXc5pYYCECKK5dHEXqV5jawgvkZToK

使用上面获得的值修改库存文件,我的文件看起来是这样的:

# grep -v '^ *#' inventory 

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

[all:vars]

dockerhub_base=ansible

dockerhub_version=latest

default_admin_user=admin

default_admin_password=ERg0ELvWh5Ia

awx_secret_key=pXc5pYYCECKK5dHEXqE5KawgvkZToK

postgres_data_dir=/var/lib/pgdocker

host_port=8000

docker_compose_dir=/var/lib/awx

pg_username=awx

pg_password=eoco3EeHWeRohwe

pg_database=awx

pg_port=5432

awx_official=true

7、执行playbook

运行ansible-playbook命令后跟选项-i,告诉它要使用的库存文件,playbook文件的名称是install.yml:

# ansible-playbook -i inventory install.yml

如果收到错误ImportError: No module named ‘requests.packages.urllib3’的模块,请运行:

# pip install requests urllib3 pyOpenSSL --force --upgrade

一段时间后,部署应该完成,然后可以使用docker ps命令检查已创建的docker容器及其状态:

在CentOS 7系统上安装Ansible AWX的方法

已经专门为AWX创建了5个容器:Memcached容器、AWX_task容器、AWS Web容器、Rabbitmq容器、PostgreSQL容器。

要管理这些容器,请使用docker-compose或使用docker native命令,如果你没有更改,可以通过host-ip:8000或端口80访问Web门户,将会出现以下页面:

在CentOS 7系统上安装Ansible AWX的方法

输入你在清单文件中指定的用户名和密码,进行身份验证后,将进入AWX管理中心,如下图:

在CentOS 7系统上安装Ansible AWX的方法

至此,安装Ansible AWX完成。

 

配置Nginx反向代理

如果你要为AWX配置Nginx反向代理,配置为https访问,请执行以下步骤,要做的第一件事是使用certbot-auto工具为AWX生成SSL证书,以下为生成Letsencrypt SSL证书:

# wget https://dl.eff.org/certbot-auto -P /usr/local/bin

# chmod a+x /usr/local/bin/certbot-auto

# /usr/local/bin/certbot-auto certonly --standalone -d awx.example.com -d www.awx.example.com\

--preferred-challenges http --agree-tos -n -m emailaddress@domain.com --keep-until-expiring

获得ssl证书后,修改以下配置代码段以与nginx一起使用:

# cat /etc/nginx/conf.d/awx.conf 

server

{

listen 443 ssl http2;

server_name awx.example.com www.awx.example.com;

location /

{

proxy_http_version 1.1;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_pass http://192.168.x.x:8000/;

}

ssl on;

ssl_certificate /etc/letsencrypt/live/awx.example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/awx.example.com/privkey.pem;

ssl_session_timeout 5m;

ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:!MD5;

ssl_protocols TLSv1.2;

ssl_prefer_server_ciphers on;

access_log /var/log/nginx/awx.access.log;

error_log /var/log/nginx/awx.error.log;

}

server {

listen 80;

server_name awx.example.com www.awx.example.com;

add_header Strict-Transport-Security max-age=2592000;

rewrite ^ https://$server_name$request_uri? permanent;

}

注:

1、上面的ssl_ciphers部分,完整的请参考如下图:

在CentOS 7系统上安装Ansible AWX的方法

2、将example.com替换为你的真实域或子域名,并放置SSL证书的正确位置,然后最后确认nginx配置是Ok并重启nginx:

# nginx -t

# systemctl restart nginx

至此,配置Nginx反向代理完成。

 

相关主题

详细介绍使用Ansible来实现网络自动化

精选文章
热门文章