Ansible运维自动化工具(3)-模块
今天继续测试Ansible模块。
一、script模块
ansible-doc -s script :获取script模块的使用帮助。
上一篇文章讲了shell模块的,脚本需要在被管理机器上面存在,而script模块用于在被管理机器上面执行shell脚本的模块,脚本无需在被管理机器上面存在。即将本机的脚本在被管理端的机器上运行。
这个在实际运维中十分有用,只需要在管理机上编写脚本,不用分发即可运行。当然copy模块来分发也很简单,但是script模块在管理上使得运维就更加方便。
二、pip模块
ansible-doc -s pip :获取pip模块的使用帮助。用于安装python中的包。
使用pip时,需要保证被管理机器上有python-pip软件包,可以通过yum模块来安装。
ansible tcloud -m yum -a 'name=python-pip'
然后使用pip模块来安装。
ansible tcloud -m pip -a 'name=numpy'
运行时会有个问题,就是被管理机上没有pip,只有pip3,会返回Unable to find any of pip2 。
这是查看pip模块的使用帮助,可以指定pip的环境,但是仍存在权限问题,需要root权限。
ansible tcloud -m pip -a 'executable=pip3 name=numpy'
添加sudo权限来执行成功,关于怎么添加sudo权限,请参考文章-Ansible运维自动化工具(2)。
ansible tcloud -m pip -a 'executable=pip3 name=numpy' -become=true
这时在被管理机上查看pip包,显示安装成功。
三、ping模块
这个模块在第一篇文章中以及测试过,现在简单总结一下。
ansible-doc -s ping :获取ping模块的使用帮助。
Try to connect to host, verify a usable python and return `pong' on success
四、user模块
ansible-doc -s user:获取user模块的使用帮助。
用于对系统用户的管理,用户的创建、删除、家目录、属组等设置。
完整的建立用户的命令,需要root权限。
ansible tcloud -m user -a 'name=mycenots home=/home/mycentos uid=1002 shell=/usr/bin/bash' -become=true
删除用户以及家目录,同样需要roo权限。
ansible tcloud -m user -a 'name=mycenots state=absent remove=yes' -become=true
五、group 模块
该模块主要用于添加或删除组。当创建用户时如果需要指定组,组不存在的话就会有错误,就可以通过group先创建组。
这个模块笔者就不再测试了,只看看命令吧。
创建组:
ansible tcloud -m group -a 'name=mycentos gid=1232' -become=true
查看创建的组:
ansible tcloud -m shell -a 'cat /etc/group | grep 1232'
删除组:
ansible tcloud -m group -a 'name=mycentos state=absent' -become=true
最后,来看一下ansible执行后每次返回的结果字符的颜色是由区分的,可以通过 echo $? 来查看上一条命令执行的结果。
ansible执行运行命令的结束代码。
运行正常的返回码是0,其他返回码都是存在错误的情况,同时颜色也会不一样。