一遍关于搞Linux必须得会的Ansible文章

一遍关于搞Linux必须得会的Ansible文章,第1张

文章目录
  • 一、概述
    • 简介说明
    • 参考网站
  • 二、基础知识
    • 专业术语
    • 核心组件
    • 注意事项
  • 三、平台安装部署
    • 使用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年五一休息,得多睡觉了,加油!

话说回来,但是也没办法,毕竟现在的面试,卷的你要有会造空天母舰的技术,然后做着只需修修小木筏任务就行了的时代呀。

参考网站
  • 使用参考网站:
  1. Ansible官网
  2. Ansible官网-文档
  3. Ansible官网-安装指南
  4. Ansible官网-值得尝试的十件事
  5. Microsoft官网-实现Ansible
  6. Ansible中文权威指南 | Ansible中文权威指南-安装部署
  7. Ansible中文翻译文档 | Ansible中文翻译文档-安装指引手册
  • 管理界面网站:
  1. Ansible Tower:官方商业许可Web可视化管理界面
  2. Ansible Tower-单独下载
  3. Ansible Tower-套件下载
  4. Ansible AWX:官方开源的Web可视化管理界面
  5. Ansible Semaphore:一款极其优秀的开源Ansible的Web可视化管理界面
  6. Polemarch :仅次于Semaphore的Ansible based service for IT infrastructure management
  7. TiOps:国内新钛云服开发商发布的一款
    混合云管理平台产品、同时也支持Ansible的可视化管理
  8. 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主要基于PythonSSH实现自动化运维管理,所以部署主机上必须提前安装好PythonSSH方可安装部署,不过几乎所有Linux都默认内置了PythonSSH了(尤其是RedHat发行系统),需要注意的是Python的版本可能不一定是最新的,或许需要更新一下,当然也可以手动卸载了,重新安装Python官网提供的最新版本:Python官网源码安装文档
  • Ansible管理端只能是Linux内核系统,而且官方建议使用RedHat发行系列系统,无法安装在其他如Windows NT等系统上。
三、平台安装部署 使用pip安装【官网推荐】
  • 前提条件:
#下载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-getapt-cacheapt-config过于分散的问题,从而整合为apt一个命令,所以当版本过旧可能需要使用sudo apt-get install ansible来安装!

注释:PPA,Personal Package Archives,是Debian发行为了一些特有的软件包而专门开设的合作仓库。Ansible的PPA官网

源码安装devel版

根据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可视化管理界面,可参照官方文档来使用,下载地址:

  1. 单独下载:Ansible-Tower setup
  2. 捆绑下载: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的部署与使用
未经授权,如有冒犯转载,请随时联系我删除!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/868380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存