快速入门
AWX 是Ansible Tower的开源版,Ansible Tower是一个可视化界面的服务器自动部署和运维管理平台。AWX提供基于Web的用户界面,REST API和构建在Ansible之上的任务引擎。
在云服务器上部署 AWX 预装包之后,请参考下面的步骤快速入门。
准备
- 在云控制台获取您的 服务器公网IP地址
- 在云控制台安全组中,确保 Inbound(入)规则 下的 TCP:80 端口已经开启
- 在服务器中查看 AWX 的 默认管理员账号和密码
- 若想用域名访问 AWX,务必先完成 域名五步设置 过程
AWX 初始化向导
详细步骤
-
使用本地电脑浏览器访问网址:http://域名 或 http://公网IP, 进入 AWX 登录页面
-
输入用户名和密码(不知道密码?),登录到 AWX 后台管理界面
-
此时,AWX 安装部署已经验证通过
需要了解更多 AWX 的使用,请参考:Ansible Tower Documentation.
出现问题?
若碰到问题,请第一时刻联系 技术支持。也可以先参考下面列出的问题定位或 FAQ 尝试快速解决问题。
AWX 使用入门
下面以 使用 AWX 可视化运行 Ansible 项目 作为一个任务,帮助用户快速入门:
概念
在实战之前,必须先了解几个概念:
-
清单(Inventories):对应 Ansible 的 Inventory,即主机组和主机IP清单列表。
-
凭证(Credentials):受控主机的用户名、密码(秘钥)以及提权控制
-
项目(Projects):一个完整可运行的 Ansible 项目
-
模板(Templates):将清单、项目和凭证关联起来的任务模板,一次创建,多次使用,可修改
-
作业(Jobs):模板每一次运行视为一次作业
准备
在使用 AWX 运行一个 Ansible 项目之前,请确保符合如下条件:
- 准备一个可用的 Ansible 项目,例如:Grafana
- 准备一台新创建的云服务器,此服务器被 AWX 安装 Ansible 项目。建议先运行下面的脚本,在服务中安装主流的仓库,以及 Git,pip 等工具
wget -N https://cdn.statically.io/gh/Websoft9/ansible-linux/main/scripts/install.sh; bash install.sh
步骤
下面我们开始列出具体的步骤:
-
登录 AWX,创建【清单】,然后在清单中增加【主机】
-
创建【凭证】,下面是创建一个 root 账号以及管理密码所对应的范例(凭证类型选择【机器】)
-
创建【项目】,下面以我们提供的开源项目 HelloWorld 作为范例
-
创建【模板】,分别将前面创建的【凭证】、【清单】、【项目】关联起来,便完成了模板的配置
也可以直接设置额外变量覆盖交互式
-
启动Template,进入 Job 页面,开始安装所需的应用程序
常用操作
修改 URL
域名五步设置 完成后,需登录 AWX,依次打开:【Settings】>【System】, 修改默认的 URL
容器中配置 SSL/HTTPS
通过向 AWX 容器持久化存储目录增加证书的方式来配置 HTTPS,具体如下:
-
修改(检查) /data/.awx/docker-compose.yml 文件,确保有如下两项 "- 443:443" 和 "- /data/cert:/etc/ssl/certs":
ports:
- "80:8052"
- "443:443"
hostname: awxweb
user: root
restart: unless-stopped
volumes:
- /data/cert:/etc/ssl/certs -
上传证书到 /data/cert 目录
-
打开虚拟主机配置文件:/data/.awx/nginx.conf ,插入如下的 HTTPS 配置项 到 server 段落中,保存
#-----HTTPS template start------------
listen 443 ssl;
ssl_certificate /etc/ssl/certs/xxx.crt;
ssl_certificate_key /etc/ssl/certs/xxx.key;
ssl_trusted_certificate /etc/ssl/certs/chain.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#-----HTTPS template end------------以上的配置文件中的路径必须是 awx-web 容器虚拟机的路径:/etc/ssl/certs
-
运行如下命令,重置容器
cd /data/.awx
sudo docker-compose up -d
docker restart awx_web
配置 SMTP
-
在邮箱管理控制台获取 SMTP 相关参数
-
登录 AWX控制台,打开:【ADMINISTRATION】>【NOTIFICATIONS】
-
新建一个 Notification 模板,选择【电子邮件】,填写相关 SMTP 参数
增加额外变量
AWX 支持从项目之外注入所需的变量,它是通过额外变量机制实现,一方面可以增加变量的多样性,另外可以绕过 Ansible 项目中的交互式。
有两种额外变量的方式:
-
方式一:在【模板】编辑页面直接增加额外变量
-
方式二:在【模板】编辑页面增加一个【问卷调查】项
详情参考官方文档 Create a Survey
参数
AWX 应用中包含 Nginx, Docker, PostgreSQL 等组件,可通过 通用参数表 查看路径、服务、端口等参数。
通过运行 docker ps
,查看 AWX 运行时所有的服务组件:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
36a4c73b8127 awx-awx "dumb-init -- sh /us…" 8 seconds ago Up 3 seconds 8052/tcp awx-task
1045b845de8a quay.io/ansible/awx:22.5.0 "dumb-init -- /usr/b…" 8 seconds ago Up 7 seconds 0.0.0.0:9001->8052/tcp, :::9001->8052/tcp awx
5220404d4ca5 postgres:12 "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 5432/tcp awx_postgres
27ab5f733161 quay.io/ansible/awx:22.5.0 "dumb-init -- /usr/b…" 8 seconds ago Up 7 seconds 8052/tcp awx_rsyslog
6934c773da4c redis "redis-server /usr/l…" 8 seconds ago Up 7 seconds 6379/tcp awx_redis postgres
路径
AWX 配置文件目录 /data/apps/awx
AWX 数据目录: /data/apps/awx/data
端口
无特殊端口
版本
sudo docker inspect awx_web
服务
#AWX-主程序
sudo docker start | stop | restart | pause | stats awx_task
#AWX-Web界面
sudo docker start | stop | restart | pause | stats awx_web
sudo docker start | stop | restart | pause | stats awx_rabbitmq
sudo docker start | stop | restart | pause | stats awx_postgres
sudo docker start | stop | restart | pause | stats awx_memcached
命令行
先运行 pip install ansible-tower-cli
安装 AWX CLI ,然后配置使用
tower-cli config host http://<new-awx-host.example.com>
tower-cli config username <user>
tower-cli config password <pass>
tower-cli send assets.json
tower-cli user list
更多参考: AWX CLI on AWX Github