ansible批量管理服务 上

1.1 ansible批量管理服务概述

(1)是基于python语言开发的自动化软件工具
(2)是基于SSH远程管理服务实现远程主机批量管理
(3)并行管理,部署简单,应用也简单方便

1.2 ansible批量管理服务意义

(1)提高工作的效率
(2)提高工作的准确度
(3)减少维护的成本
(4)减少重复性工作

1.3 ansible批量管理服务功能

(1)可以实现批量系统操作配置
(2)可以实现批量软件服务部署
(3)可以实现批量文件数据分发
(4)可以实现批量系统信息收集

1.4 ansible批量管理服务特点

(1)管理端不需要启动服务程序(no server)
(2)管理端不需要编写配置文件(/etc/ansible/ansible.cfg)
(3)受控端不需要安装软件程序(libselinux-python)
(4)受控端不需要启动服务程序(no agent=无代理)
(5)服务程序管理操作模块众多(module)
(6)利用剧本编写来实现自动化(playbook)

1.5 ansible批量管理服务架构

(1)连接插件(connectior plugins) :用于连接主机 用来连接被管理端
(2)核心模块(core modules) :连接主机实现操作, 它依赖于具体的模块来做具体的事情
(3)自定义模块(custom modules) :根据自己的需求编写具体的模块
(4)插件(plugins) :完成模块功能的补充
(5)剧本(playbooks):ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
(6)主机清单(host inventory):主机清单配置信息,定义ansible需要操作主机的范围
(7)最重要的一点是 ansible是模块化的,它所有的操作都依赖于模块

111_看图王.png


2 ansible服务部署

2.1 ansible安装

系统、内核版本

[root@m01 ~]#cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@m01 ~]#uname -a Linux m01 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

安装ansible

[root@m01 ~]yum repolist # 查看是否有相应epel源,安装ansible需要epel源 [root@m01 ~]yum install -y ansible [root@m01 ~]#rpm -qa ansible ansible-2.8.1-1.el7.noarch # ansible版本

2.1 ansible语法格式

ansible 管理主机信息  -m  模块名称 -a "操作动作" 

1563888396102-e011e809-7cc9-424a-b75f-73dd5f0bb771.png


2.2 ansible主要配置文件

官方资料: https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
配置文件

[root@m01 ~]#rpm -ql ansible /etc/ansible/ansible.cfg --- ansible配置文件 /etc/ansible/hosts --- 主机清单文件,定义管理的主机信息 /etc/ansible/roles --- 角色目录(更加规范使用ansible)

ansible配置文件

vi /etc/ansible/ansible.cfg #ansible_become=True --- 开启用户切换功能 #ansible_become_method=sudo --- 使用什么方式切换用户权限 su / sudo #ansible_become_user=root --- 默认切换成什么用户 #ansible_become_ask_pass=false --- 是否使用密码认证

2.3 ansible主机清单配置 ansible_become 开启用户sudo或su功能
ansible_become_method   选择获取权限的方式 su / sudo    
ansible_become_user   指定切换成什么用户操作    
ansible_become_password   实现设置su或者sudo密码信息    

2.3.1 方法一:编写远程主机地址信息 [root@m01 ~]#vim /etc/ansible/hosts # 最后面添加IP地址 172.16.1.7 172.16.1.31 172.16.1.41

命令检测
所有IP地址可以用 all 来代替

root@m01 ~]#ansible all -m command -a "hostname" 172.16.1.7 | CHANGED | rc=0 >> web01 172.16.1.41 | CHANGED | rc=0 >> backup 172.16.1.31 | CHANGED | rc=0 >> nfs01

也可以用逗号隔开IP地址

[root@m01 ~]#ansible 172.16.1.31,172.16.1.41,172.16.1.7 -m command -a "hostname" 172.16.1.7 | CHANGED | rc=0 >> web01 172.16.1.31 | CHANGED | rc=0 >> nfs01 172.16.1.41 | CHANGED | rc=0 >> backup

2.3.2 方法二:编写服务内置变量信息

编写服务内置变量信息

ansible_port=xxx --- 指定远程服务端口号 ansible_password=xxx --- 指定远程服务密码信息 ansible_user=xxx --- 指定以什么用户远程连接主机 ansible_host=xxx --- 指定远程主机地址信息和名称做映射,XXX=ip地址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxfyf.html