Linux搭建Ansible-AnsibleAwx环境
Ansible
简介
Ansible 是一个开源的基于 OpenSSH 的自动化配置管理工具。可以用它来配置系统、部署软件和编排更高级的 IT 任务,比如持续部署或零停机更新。Ansible 的主要目标是简单和易用,并且它还高度关注安全性和可靠性。基于这样的目标,Ansible 适用于开发人员、系统管理员、发布工程师、IT 经理,以及介于两者之间的所有人。Ansible 适合管理几乎所有的环境,从拥有少数实例的小型环境到有数千个实例的企业环境。
使用 Ansible 无须在被管理的机器上安装代理,所以不存在如何升级远程守护进程的问题,也不存在由于卸载了守护进程而无法管理系统的问题。
工作方式
使用 Ansible 无须在被管理的客户端电脑上安装代理之类的组件。它通过普通的 SSH 进行通信,以便从远程计算机检索信息、发出命令和复制文件。这是 Ansible 简化服务器管理的一种方式。任何公开 SSH 端口的服务器都可以通过 Ansible 进行配置和管理。
Ansible 采用模块化的设计,所以非常容易扩展到各种特定的使用场景。模块可以用任何语言编写,并使用标准 JSON 进行通信。Ansible 的配置文件是用 YAML 格式编写的,因为它使用起来非常简单,并且与主流的标记语言很相似。除了通过命令行工具 Ansible 还可以通过配置脚本(Playbooks)与客户端交互。
特性
- 低学习成本
- 无需在服务器中安装客户端,基于 SSH 工作,可并行执行
- 无需服务端,直接终端命令即可
- 管理的对象可以包括物理机,虚拟机,容器等等
- 使用 yaml 格式文件编排 playbook
组成元素
- control node:控制节点,可以在任何安装了 Python 环境的机器中使用 ansible,两个重要的可执行文件在 /usr/bin/ansible 和 /usr/bin/ansible-playbook
- managed node:被控制的节点
- inventory:需要管理的节点,通常配置成 hostfile 文件
- modules:ansible 进行自动化任务时调用的模块,社区提供了非常多 modules
- Task:Ansible 的执行单元
- playbook:编排多个任务
- roles:roles 是将 playbook 划分多个部分的机制
- plugins:ansible 插件
优势
- 可以逐行的执行 shell 命令。
- 不需要另外的客户端工具(linux 一般会自带 ssh 工具)。
- 相同的配置只被执行一次(多次执行同一配置不会出问题)。
Ansible awx
简介
AWX提供了一个基于web的用户界面、REST API和构建在Ansible之上的任务引擎。 图形化的AWX 能够更方便的编排和部署 Ansible Playbook,并提供集中的日志记录、审计和系统跟踪。AWX是商业版Ansible Tower 的开源版本。
awx项目地址:https://github.com/ansible/awx/
说明
AWX版本18以后的安装方式变更为使用AWX Operator 部署,应急需求变高,需要部署于Kube环境。
AWX版本17支持OpenShift,Kube,Docker,硬件需求低。
下文采用AWX17.1.0。
环境要求
- 关闭SELinux和防火墙
- Ansible
- Docker
- Docker Compose
- Python模块:docker-compose
- 其他依赖
- Ansible AWX组件
- Ansible AWX
关闭SELinux和防火墙
1 | 关闭SELinux |
Ansible安装
1 | 安装EPEL源 |
Docker安装
or
菜鸟教程:CentOS Docker 安装
Docker Compose安装
or
菜鸟教程:Docker Compose
注意增加软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装Python模块
1 | 安装Python(version 3.6) |
安装其他依赖
1 | yum install -y yum-utils device-mapper-persistent-data lvm2 git vim-enhanced gcc libffi-devel python3-devel pwgen openssl-devel gcc-c++ nodejs npm gettext bzip2 |
Ansible AWX组件安装
1 | 以镜像形式安装,执行AWX安装时会自动使用以下镜像生成容器 |
Ansible AWX安装
1 | awx下载地址:https://github.com/ansible/awx/releases |
登录Ansible AWX
URL:http://IP:PORT ,IP为本主机IP,PORT为AWX访问端口。
输入用户名admin,默认密码为password。