什么是Ansibleansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。Ansible特性基于Python语言实现,由Paramiko,PyYAML和Jinjia2三个关键模块;ansible是工作在agentless模式下具有幂等性。ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。默认使用SSH协议;(1)基于密钥认证;(2)在inventory文件中指定账号和密码;基于“模块”完成各种“任务”支持自定义模块:支持各种编程语言可以使用YAML语言定制playbookAnsible架构图Ansible核心组件说明:Ansible:Ansible的核心程序HostLnventory:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用CoreModules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用coreModules中的模块,然后指明管理HostLnventory中的主机,就可以完成管理主机。CustomModules:自定义模块,完成Ansible核心模块无法完成的功能ConnectionPlugins:连接插件,Ansible和Host通信使用环境拓扑图安装AnsibleAnsible在epel的yum中有提供,所以配置好epel源,直接使用yum命令安装即可[rootnode1~]#yum-yinstallansible查看生成的主要文件[rootnode1~]#rpm-qlansible/etc/ansible/ansible.cfg#主配置文件/etc/ansible/hosts#invertory文件说明:Ansible不是服务,所以不需要服务脚本配置和被管理的主机直接建立基于ssh的密钥认证ssh-keygen-trsa-f~/.ssh/id_rsa-Pssh-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中,否则无法管理[rootnode1~]#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功能:命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。[rootnode1~]#ansible-doc-s
转载请注明:http://www.aierlanlan.com/cyrz/7974.html