- 一、概述
- 简介说明
- 参考网站
- 二、基础知识
- 专业术语
- 核心组件
- 注意事项
- 三、平台安装部署
- 使用pip安装【官网推荐】
- 在REHL发行系统上安装【最方便】
- 在Debian发行系统上安装
- 源码安装devel版
- 确认安装
- 命令完成模块
- 安装模块
- 配置模块
- 四、可视化管理界面
- Ansible Tower【商业许可】
- Ansible AWX【官方开源】
- ★附录
Ansible[ˈæn.sɪ.bəl]:是Red Hat(红帽)官方出品的自动化运维平台,它包含了服务器的批量系统配置
、批量环境部署
、批量命令执行
等批量管理,还包含了服务器设备的性能监控
、日志预警提醒
、多任务管理
等设备运行管理,自身拥有模块(Modules)
化管理 *** 作,同时支持Java或Python的代码块
运行 *** 作,甚至针对接口使用Python进行二次开发
处理,是作为一名Linux运维人员
所必备的技能,同时也是Red Hat(红帽)官方所有认证的基础(红帽证书也被称为Linux界的天花板认证),也就是需要获得红帽证书,必须先精通Ansible的部署和使用!
它的水之深,比起
编程语言
(Java/Python/JavaScript或C|C++)、比起Web框架
(Spring/Vue.js/Express/Swagger)、比起JDBC持久化ORM框架
(MyBatis/Hibernate/JPA/jOOQ)、比起数据库
(Oracle/MySQL以及近几年很火的MongoDB)、比起工作流引擎
(Activiti/jBPM/Camunda/Flowable)、比起项目构建部署管理
(Maven/Gradle)、比起中间件Web容器
(Tomcat/WebLogic/Jetty/Docker/Nginx)、比起MQ消息队列
(Kafka/ActiveMQ/RabbitMQ)、比起大数据相关
的(Hadoop Apache生态系统/HaLoop/BigQuery/DataStudio/RapidMiner/Pentaho/Scrapy/Hystrix)以及*** 作系统
(Windows/Linux[Red Hat/Debian]/macOS)等等,水深而不相上下,甚至某些方面可能有过之而无不及,我瞬间破防了,至今我自认对Ansible的了解程度不及10%,所以年轻人全栈是真的难,大佬哪是那么容易,不要像我一样的糊涂(特指样样都了解结果样样都不会),针对一个专研就好了(比如uni-app+uniCloud一个前端通吃全栈不香吗?),强者总是招人嫉妒的,不说了,难得2022年五一休息,得多睡觉了,加油!
参考网站话说回来,但是也没办法,毕竟现在的面试,卷的你要有会造空天母舰的技术,然后做着只需修修小木筏任务就行了的时代呀。
- 使用参考网站:
- Ansible官网
- Ansible官网-文档
- Ansible官网-安装指南
- Ansible官网-值得尝试的十件事
- Microsoft官网-实现Ansible
- Ansible中文权威指南 | Ansible中文权威指南-安装部署
- Ansible中文翻译文档 | Ansible中文翻译文档-安装指引手册
- 管理界面网站:
- Ansible Tower:官方商业许可Web可视化管理界面
- Ansible Tower-单独下载
- Ansible Tower-套件下载
- Ansible AWX:官方开源的Web可视化管理界面
- Ansible Semaphore:一款极其优秀的开源Ansible的Web可视化管理界面
- Polemarch :仅次于Semaphore的Ansible based service for IT infrastructure management
- TiOps:国内新钛云服开发商发布的一款
混合云管理平台产品、同时也支持Ansible的可视化管理 - Alex li-Ansible UI:Github大佬开发的Web可视化管理界面
核心组件
- 清单:受控节点的列表,其实也就是所有要管理的
主机列表
清单。 - 模块:模块是Ansible执行特定任务的代码块,比如:
添加用户
、上传文件
和对客户机执行命令 *** 作
等,现在已经支持默认自带450多个模块,,Ansible Galaxy公共存储库则包含大约1600个模块。 - 变量:模块所需要统一维护的变量信息,提供模块的批量 *** 作使用。
- 基本概况:Ansible的
Web管理用户界面
展示的受控主机基本概况。 - Play:是指通过Ansible在
客户机上执行的 *** 作
指令,可以使用ad-hoc单行命令执行一个的 *** 作。 - Playbook:剧本,类似于Linux中的
Shell脚本
,其可以将Shell脚本或Python脚本配合起来运行,是利用YAML
标记语言编写的可重复执行的任务列表,还可以实现任务更便捷的读写和贡献。 - 配置文件:通过
ansible --version
查看版本时,其中的config file=/etc/ansible/ansible.cfg
便是配置文件所在路径。
- Ansible主要基于
Python
和SSH
实现自动化运维管理,所以部署主机上必须提前安装好Python
和SSH
方可安装部署,不过几乎所有Linux都默认内置了Python
和SSH
了(尤其是RedHat发行系统),需要注意的是Python
的版本可能不一定是最新的,或许需要更新一下,当然也可以手动卸载了,重新安装Python官网提供的最新版本:Python官网源码安装文档 - Ansible管理端只能是
Linux内核
系统,而且官方建议使用RedHat发行系列
系统,无法安装在其他如Windows NT
等系统上。
- 前提条件:
#下载pip安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
#执行安装pip包(当前用户)
python get-pip.py --user
#执行安装pip包(全局用户)
sudo python get-pip.py
#查看pip版本
python -m pip --version
#或者使用以下语句查看pip版本
pip -V
- 当前用户安装:
#使用pip安装ansible模块
python -m pip install --user ansible
#使用pip安装paramiko连接模块
python -m pip install --user paramiko
- 全局用户安装:
#使用pip安装ansible模块
sudo python -m pip install ansible
#使用pip安装paramiko连接模块
sudo python -m pip install paramiko
在REHL发行系统上安装【最方便】
sudo yum install epel-release
sudo yum install ansible
在Debian发行系统上安装
#先刷新下软件源
sudo apt update
#安装Python软件属性
sudo apt install software-properties-common
#部分旧版Debian发行系统命令>>>
sudo apt-get install python-software-properties
#添加PPA软件源到系统
sudo add-apt-repository ppa:ansible/ansible
sudo add-apt-repository --yes ppa:ansible/ansible
#更新PPA软件源到系统
sudo add-apt-repository --yes --update ppa:ansible/ansible
#刷新软件源
sudo apt update
#安装Ansible
sudo apt install ansible
注意:部分旧版Ubuntu可能需要
apt-get
来运行命令,简单来说apt
的诞生是为了解决apt-get
、apt-cache
和apt-config
过于分散的问题,从而整合为apt
一个命令,所以当版本过旧可能需要使用sudo apt-get install ansible
来安装!
源码安装devel版注释:PPA,Personal Package Archives,是Debian发行为了一些特有的软件包而专门开设的合作仓库。Ansible的PPA官网
根据Ansible官网所说:如果需要使用Ansible AWX管理节点的话,则不能安装devel版,所以Ansible没有离线源码安装的说法,只能搭建本地
yum
/apt
源,进行安装最新稳定版。
可以从官方发布释放获取对应的安装包,最新版来自于PyPI仓库!!!
cd ./ansible
source ./hacking/env-setup
确认安装
#确认是否安装成功
ansible all -m ping --ask-pass
命令完成模块
安装模块
#使用Python的pip包安装
sudo python -m pip install argcomplete
#在REHL上安装
$ sudo yum install epel-release
$ sudo yum install python-argcomplete
#在Debian上安装
sudo apt install python3-argcomplete
配置模块
- 全局配置:
sudo activate-global-python-argcomplete
- 单条配置:
vim /etc/profile
添加以下语句↓↓↓
eval $(register-python-argcomplete ansible)
eval $(register-python-argcomplete ansible-config)
eval $(register-python-argcomplete ansible-console)
eval $(register-python-argcomplete ansible-doc)
eval $(register-python-argcomplete ansible-galaxy)
eval $(register-python-argcomplete ansible-inventory)
eval $(register-python-argcomplete ansible-playbook)
eval $(register-python-argcomplete ansible-pull)
eval $(register-python-argcomplete ansible-vault)
四、可视化管理界面
Ansible Tower【商业许可】
使用官方提供的Web可视化管理界面,可参照官方文档来使用,下载地址:
- 单独下载:Ansible-Tower setup
- 捆绑下载:Ansible-Tower setup-bundle
#下载Ansible Tower
wget https://releases.ansible.com/ansible-tower/setup-bundle/ansible-tower-setup-bundle-latest.tar.gz
#解压Ansible Tower
tar -zxvf ansible-tower-setup-bundle-latest.tar.gz
#进入Ansible Tower目录
cd ansible-tower-setup-bundle-latest
#开始安装
vim inventory
#修改或插入以下内容:
host='127.0.0.1'
port='5432'
admin_password='admin'
pg_host='127.0.0.1'
pg_port='5432'
pg_username='tower'
pg_password='tower'
rabbitmq_password='tower'
#创建日志
mkdir -p /var/log/tower
chmod 777 /var/log/tower
#启动服务
sudo sh setup.sh
Ansible AWX【官方开源】
由于Ansible AWX就是Ansible Tower的开源版本,所以推荐用户使用该版本,Tower其实是付费的,如果需要添加节点,只有购买RedHat的服务才行,否则将无法使用。
#因为开源产品不附带服务,所以需要安装Docker Compose才行
#安装docker
sudo yum -y install docker*
sudo apt install docker-ce docker-ce-cli containerd.io curl
#显示docker版本
docker --version
Docker version 19.03.12, build 48a66213f
#下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#显示docker-compose版本
docker-compose version
docker-compose version 1.26.2, build unknown
docker-py version: 4.3.0
CPython version: 3.8.2
OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020
#安装Nodejs和NPM
sudo yum -y install nodejs npm
sudo apt install -y nodejs npm
sudo npm install npm --global
#安装docker相关的python库
sudo apt install python3-pip git pwgen vim
sudo pip3 install requests==2.14.2
#clone awx的代码
git clone --depth 50 https://github.com/ansible/awx.git
#进入awx目录
cd awx/installer/
#创建一个AWX 的secret key
pwgen -N 1 -s 30
2fCkx2K5GnIjBz4OterhOC3ey0WPd
#编辑inventory
vim /root/awx/installer/inventory
#执行安装
ansible-playbook -i inventory install.yml
#检查部署
docker ps -a
★附录新版详细安装方式可参照:官方安装指南、需要借助AWX Operator实现Web服务访问!
Ansible最强之处在于你可以根据自己的需求,采用Django等方式开发自己的Web管理界面,甚至可以根据Ansible开放的接口定制化自己的个性化功能,所以我说至今我自认对Ansible的了解程度不及10%不仅没谦虚,甚至可能还有些自夸了!
由网久软件提供的专业用户指导手册文档!
附带大佬的一篇博文:新钛云服:一文学会主流Ansible Web UI的部署与使用
未经授权,如有冒犯转载,请随时联系我删除!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)