Ansible

目录

一、为什么要学ansible?

二、ansible概述

三、ansible特点

四、ansible架构图、运行机制

架构图

运行机制

五、安装与配置

六、ansible基础操作命令模块


一、为什么要学ansible?

Ansible是一种自动化工具,可以帮助你自动化配置、部署和管理系统可以大大简化管理工作,提高效率。相比其他自动化工具,Ansible具有简单明了的语法和易于上手的特点。它使用YAML格式进行配置,不需要编写复杂的脚本或程序代码。它是基于SSH协议进行通信的,可以在各种操作系统上运行,包括Linux、Windows和UNIX等。Ansible使用剧本来描述任务和配置,剧本具有可读性强的结构,可以轻松理解和维护。同时,Ansible还支持任务的并行执行,可以提高执行效率。Ansible拥有庞大的开源社区和活跃的贡献者,可以从中获取到丰富的资源和经验分享。

二、ansible概述

Ansible是一个基于Python开发的配置管理和应用部署工具,能批量配置、部署、管理上千台主机。它是基于模块工作的,只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块。

三、ansible特点

1、部署简单,只需在主控端部署Ansible环境, 被控端无需做任何操作
2、默认使用SSH协议设备进行管理;
3、主从集中化管理
4、配置简单、功能强大、扩张性强;
5、支持API及自定义模块,可以通过Pyhton轻松扩展
6、通过playbooks 来定制强大的配置、状态管理
7、对云计算平台、大数据都有很好的支持
 

四、ansible架构图、运行机制

架构图

Ansible_第1张图片

运行机制

通过Inventory文件定义目标主机,然后编写playbook,ansible通过ssh与目标主机建立连接,连接建立完成之后,解析并执行playbook文件,根据playbook的任务逐个执行,执行时调用模块和插件,执行完成时根据清单文件通过ssh将临时文件传给远程主机并返回结果,执行完成后自动删除。

五、安装与配置

管理端:   192.168.246.10        ansible                    
被管理端:192.168.246.11                                
被管理端:192.168.246.12                              

#管理端安装 ansible

yum install -y epel-release            //先安装 epel 源
yum install -y ansible

#配置主机清单  

cd /etc/ansible 
vim hosts       
[webservers]            #配置组名
192.168.246.10            #组里包含的被管理的主机IP地址或主机名(主机名需要先修改/etc/hosts文件)
[dbservers]
192.168.246.11
192.168.246.12

Ansible_第2张图片 

#配置密钥对验证

ssh-keygen -t rsa        #一路回车,使用免密登录
sshpass -p 'abc1234' ssh-copy-id [email protected]
sshpass -p 'abc1234' ssh-copy-id [email protected] 

 #免密测试

ssh 192.168.246.11

六、ansible基础操作命令模块

1.command 模块:在远程主机执行命令,不支持管道,重定向等shell的特性,例如ansible-doc -s command#-s 列出指定模块的描述信息和操作动作。

2.shell 模块:用于在远程主机上执行命令,例如ansible all -m shell -a "rm -rf /tmp/test"可以删除/tmp/test目录;

3.cron 模块:在远程主机定义任务计划。其中有两种状态(state):present表示添加(可以省略),absent表示移除,例如ansible-doc -s cron#按 q 退出。

4.user 模块:用户管理的模块,例如ansible-doc -s user。

5.group 模块:用户组管理的模块,例如ansible-doc -s group。

6.copy 模块:用于将本地文件复制到远程主机上,例如ansible all -m copy -a "src=/path/to/localfile dest=/path/to/remote/directory"可以将本地文件复制到远程主机。

你可能感兴趣的:(ansible,运维)