java分布式系统部署学习(一)ansible体验,javaansible


ansible入门体验

ansible是做什么的?为什么在分布式系统中需要用到它?
假如我现在有一个java的服务A,在业务量小而且可用性要求不是很高的时候可以只部署一台服务器。当服务A要上线发布的时候可以直接登陆到这台服务器进行发布上线工作。但是由于业务量的增长和可用性的需要我现在要做一个服务A的集群,假如是三台或者更多,如果还像以前一样挨个发布一遍这将是一件无聊透顶而且效率极低的事情。
ansible正是解决了这种问题,我们可以把ansible部署到一台服务器(通常称为跳板机)上专门用来管理其他生产服务器,在跳板机上通过ansible来操作其他服务器(如启停服务等),进而实现统一调配管理的目的。
Ansible中文手册

按照文档安装了ansible之后,按照文档运行ansible命令可能会出现权限问题,这个地方我觉得文档写的不是很清楚,其实也很简单,但在讲述免密码运行ansible命令之前要确认几点:

至此在主控机已经可以免密运行命令了

 ansible all -m ping [-u root]

注意:这里如果主控机当前用户名如果和被控机用户名相同,可以省略上述命令中的” -u root”,因为ansible默认通过主控机当前用户名进行链接。

ansible配置文件

上一节已经可以成功的运行ansible命令了,但是比较烦躁的一点就是每次执行命令都会弹出一个警告,仔细看看警告内容得知,上一节“3“中的配置被控主机的方式已经过时了,我们需要使用新的配置方式,即配置文件。
自1.5之后ansible读取配置文件的顺序为:

 - ANSIBLE_CONFIG (一个环境变量)
 - ansible.cfg (位于当前目录中)
 - .ansible.cfg (位于家目录中)
 - /etc/ansible/ansible.cfg

/etc/ansible/ansible.cfg是最后兜底的配置。我们就在这里对hosts进行配置。
在ansible的项目里,ansible/examples/目录中有配置文件的样例,可以直接copy到自己的/etc/ansible/目录,需要copy两个文件,即ansible.cfg和hosts。ansible.cfg属于总的配置文件,hosts仅用来配置被控主机,即Inventory文件。
打开ansible.cfg可以看到其中的配置选项,样例文件中的配置都被注释了,我们只需要解除需要的配置选项的注释,再做参数修改即可。
接下来配置被控主机只需要两步
1.打开Inventory注释

inventory      = /etc/ansible/hosts

2.把被控主机配置到/etc/ansible/hosts。
然后在执行上一节“6“中的命令,即可看到警告已经消失了。
这就是ansible的配置,其他配置可以在需要是打开。
比如“remote_user“配置,可以指定默认使用的远程登陆用户。

相关内容

    暂无相关文章