添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Ansible介绍、安装与配置教程

1、Ansible介绍

Ansible是一个自动化运维工具,大规模节点化管理。
优点:
(1)简单,SHELL脚本能做的事情,Ansible都能做。Playbook可读性很强。
(2)强大,模块化实现,约2000多模块,如copy模块。
(3)YAML格式文件,严格的缩进。
(4)真正实现自动化运维的基础(docker是针对应用做容器化,而Ansible针对全局),有CI和CD的集成思想。
(5)最大的优点,puppet saltstack 被管理节点一定需要安装客户端的,但是ansible是agentless无客户端,完全ssh管理。

2、Ansible架构

Ansible介绍、安装与配置教程(图1)

【注】类CI和CD的无缝集成。测试、质量管理、具体操作者、管理人员、外包,所有人员都可以通过ansible playbook实现想要的功能。

Ansible介绍、安装与配置教程(图2)

Ansible集成内容:
(1)CMDB即配置管理数据库。
(2)INVENTORY即清单,被管理节点信息。分静态和动态(Python脚本实现)。
(3)MODULES即模块,搞清楚常用模块,如安装install,拷贝copy等模块。
(4)PLUGINS即插件,用来实现ansible和客户端连接的功能。
重点:如何引用和设置清单inventory,如何查找和使用modules。
架构:
管理节点:安装了ansible的管理节点,通过ssh到被管理节点,执行任务任务task。

Ansible介绍、安装与配置教程(图3)

(1)停止监控
(2)移除负载均衡
(3)停止服务
(4)部署应用
【注】如上图,一个服务器需要执行以上6步,那么100台服务器的工作量是相当可怕的,可以通过ansible进行批量部署。

3、Ansible安装部署

(1)安装部署和授权

[root@ansible ~]# yum install ansible -y
[root@ansible ~]# useradd devops
[root@ansible ~]# passwd devops
[root@ansible ~]# cp -ir  /etc/ansible  /home/devops/
[root@ansible ~]# cd /home/devops/
[root@ansible devops]# chown -R devops:devops ansible/

1-210212203GA57.png

(2)两台待管理主机添加devops用户

[root@blogs ~]# useradd devops
[root@blogs ~]# passwd devops
[root@hsd ~]# useradd devops
[root@hsd ~]# passwd devops

(3)配置免密登录

[devops@ansible ~]$ ssh-keygen -t rsa

1-210212204009A4.png

[devops@ansible ~]$ ssh-copy-id blogs
[devops@ansible ~]$ ssh-copy-id hsd

(4)修改visudo配置

[root@blogs ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
devops  ALL=(ALL)       NOPASSWD:ALL
[root@hsd ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
devops  ALL=(ALL)       NOPASSWD:ALL

4、修改Ansible主配置文件

Ansible的配置文件:定义相关的属性、设置清单。

(1)Ansible配置文件优先级

/etc/ansible/ansible.cfg    # /etc下的默认ansible配置文件优先级最低
~/ansible.cfg               # 当前家目录ansible配置文件,优先级其次
./ansible.cfg               # 当前目录ansible配置文件,优先级最高

(2)修改当前目录下的ansible.cfg配置文件

1-210212205UC13.png

[devops@ansible ansible]$ vim ansible.cfg
[defaults]
inventory=/home/student/dep-dynamic/inventory # 设置动或静态清单所在目录,无需-i
remote user=devops                            # 远程以devops身份操作
[privilege_escalation]                        # 提权参数
become=True                                   # 允许用户做权限提升
become_method=sudo                            # 提升的方式是sudo
become_user=root                              # 提权到root用户
become_ask_pass=False                         # 不需要输入密码

5、验证测试,编辑hosts

[devops@ansible ansible]$ vim hosts 
[blogs]
blogs
[hsd]
[all]
blogs
[devops@ansible ansible]$ mkdir inventory
[devops@ansible ansible]$ mv hosts inventory
# 测试blogs主机和hsd主机是否有做过修改
[devops@ansible ansible]$ ansible all -m ping

1-2102122111431N.png

【注】出现上面返回信息,说明ansible已经配置成功,可以管理blogs主机和hsd主机。

作者:UStarGao
链接:
https://www.starcto.com/devops/78.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

  • 2021-08-22 Smokeping+Promethues+Grafana搭建网络质量监控
  • 2021-06-23 Linux性能异常经典案例分析之D进程
  • 2021-09-30 MongoDB性能分析之WiredTiger引擎
  • 2021-02-11 Linux 安装Python2与Python3
  • 2022-02-26 Linux iptables控制网络访问
  • Docker清理垃圾数据卷volumes
  • UCloud MySQL innodbackup物理备份还原到本地
  • Windows游戏服务器缺少.NET3.5环境依赖而诱发的时间戳转换问题
  • UCloud云数据库公网访问解决方案
  • Linux服务器OOM卡死解决方案-earlyoom
  • 关闭Windows Server自动更新 Windows Server自动更新 备份未记录binlog 主从复制异常 --set-gtid-purged参数 绕开ChatGPT限制 海外手机号解决方案 ChatGPT Nginx安全控制之IP白名单 进程树状图 pstree Docker查看磁盘使用情况 Docker垃圾数据卷volumes清理 MySQL innodbackup物理备份还原 DateTimeOffset Windows游戏服务时间戳转换 Windows安装.NET3.5 全链路网络延迟探测 mysql-proxy 数据库代理 云NAT网关 数据库外网访问 文件定位locate Linux后台运行程序 Linux用户管理 dmesg stat查看文件修改时间 Tab命令补全 lrzsz文件传输