转自
Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客
http://weiweidefeng.blog.51cto.com/1957995/1895261
Ansible是什么?
ansible架构图
ansible特性
模块化:调用特定的模块,完成特定的任务;
基于Python语言研发,由Paramiko, PyYAML和Jinja2三个核心库实现;
部署简单:agentless;
支持自定义模块,使用任意编程语言;
强大的playbook机制;
幂等性;
安装及程序环境:
程序:
ansible
ansible-playbook
ansible-doc
配置文件:
/etc/ansible/ansible.cfg
主机清单:
/etc/ansible/hosts
插件目录:
/usr/share/ansible_plugins/
安装ansible
安装依赖包
ansible命令的使用:
Usage: ansible <host-pattern> [options]
常用选项:
-m MOD_NAME
-a MOD_ARGS
配置Host Inventory:
/etc/ansible/hosts
[group_id]
HOST_PATTERN1
HOST_PATTERN2
示例:
首先对此文件进行备份操作,以防后面需要用到默认配置文件
进入到/etc/ansible/hosts文件,此处绿色光标以下的内容是没有用的,都是示例,可以删除掉,然后添加我们下面实验操作用到的主机。
添加一组websrvs服务器,以用于下面的测试
测试主机连通性
这里报错是因为实验用的主机交换其他两台主机的公钥/私钥的原因导致的
实验SSH免密码登陆设置
生成私钥和公钥ssh-keygen -t rsa -P ''
复制公钥文件问authorized_keys
把公钥传送到其他主机
在68的主机上面可以看见公钥已经传送过来了,并且确认文件的权限是否正确
重复以上操作把公钥发送给69的主机
然后重新执行ansible的ping模块命令查看该两台主机的连通性
可以发现此时已经成功,那么下面就开始介绍ansilbe的其他模块
最后记得利用ansible同步一下所有主机的时间,以免某主机的时间有错误,后面看日志起来会造成混乱
ansible模块:
获取模块列表:ansible-doc -l
获取指定模块的使用帮助:ansible-doc -s MOD_NAME
常用模块:
ping模块:探测目标主机是否存活;
示例:测试所有的主机的连通性
command模块:在远程主机执行命令;
示例1:让所有主机同步时间
此处没有给出指定的-m command命令,是因为ansible的模块默认就是command
新闻热点
疑难解答