ansible常见模块实战运用

北京治疗白癜风的价格是多少 https://jbk.39.net/yiyuanfengcai/zn_bjzkbdfyy/

什么是Ansible

ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。

Ansible特性

基于Python语言实现,由Paramiko,PyYAML和Jinjia2三个关键模块;

ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。

默认使用SSH协议;

(1)基于密钥认证;

(2)在inventory文件中指定账号和密码;

基于“模块”完成各种“任务”

支持自定义模块:支持各种编程语言

可以使用YAML语言定制playbook

Ansible架构图

Ansible核心组件说明:

Ansible:Ansible的核心程序

HostLnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。

Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用

CoreModules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用coreModules中的模块,然后指明管理HostLnventory中的主机,就可以完成管理主机。

CustomModules:自定义模块,完成Ansible核心模块无法完成的功能

ConnectionPlugins:连接插件,Ansible和Host通信使用

环境拓扑图

安装Ansible

Ansible在epel的yum中有提供,所以配置好epel源,直接使用yum命令安装即可

[root

node1~]#yum-yinstallansible

查看生成的主要文件

[root

node1~]#rpm-qlansible/etc/ansible/ansible.cfg#主配置文件/etc/ansible/hosts#invertory文件

说明:Ansible不是服务,所以不需要服务脚本

配置和被管理的主机直接建立基于ssh的密钥认证

ssh-keygen-trsa-f~/.ssh/id_rsa-P"ssh-copy-id-i.ssh/id_rsa.pub.16.4.ssh-copy-id-i.ssh/id_rsa.pub.16.4.ssh-copy-id-i.ssh/id_rsa.pub.16.4.

定义主机,将所有被管理的主机加入到/etc/ansible/hosts中,否则无法管理

[root

node1~]#vim/etc/ansible/hosts[webserver]#定义一个组.16.4..16.4.[dbserver].16.4.

补充:如果没有设置基于ssh的密钥认证,可以在hosts文件中直接指定帐号和密码,方法如下所示:

[webserver].16.4.ansible_ssh_user=rootansible_ssh_pass=password.16.4.ansible_ssh_user=rootansible_ssh_pass=password[dbserver].16.4.ansible_ssh_user=rootansible_ssh_pass=password

模块使用:

如何查看模块帮助:

ansible-doc-l#查看所有模块

ansible-doc-sMODULE_NAME#查看指定模块的详细帮助

ansible命令应用基础:

语法:ansiblehost-pattern[-fforks][-mmodule_name][-aargs]

-fforks:启动的并发线程数;

-mmodule_name:要使用的模块;

-aargs:模块特有的参数;

常见模块说明:

Command

功能:命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。

[root

node1~]#ansible-doc-s


转载请注明:http://www.aierlanlan.com/grrz/5119.html