设为首页 收藏本站
查看: 1979|回复: 0

[经验分享] ansible学习三(命令和模块)

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-31 08:51:55 | 显示全部楼层 |阅读模式
Ansible命令的一般格式:
Ansible 主机IP  -m 模块  -a 模块参数
//主机IP:可以是具体IP也可以用正则表达式匹配也可以选择主机组,主机组在ansible
的hosts文件中定义,hosts默认位置是/etc/ansible/hosts
模块:调用ansible的指定模块,由于ansible是基于模块工作的,所以在使用过程中务
必要指定将要使用的ansible模块。
模块参数:不同模块有不同的参数,具体模块定义具体参数,例如:shell模块用于批
量执行命令,参数为将要执行的命令,copy模块用于批量分发文件,参数为src=源文件位置,dest=目标位置
Ansible选项:
-m指定模块
-a指定模块参数
-k提示输入ssh密码,而不是使用秘钥
-K提示输入sudo密码,与sudo一起使用
-o一个主机的执行结果在一行显示
-s-u指定用户的时候,使用sudo获得root权限
-t将输入放到制定的目录下,命名为每一个主机的名称
-T超时时长
-B在后台运行命令,在制定NUM秒后kill该任务
-P每隔NUM秒,poll一个后台任务 和-B一起使用
-u指定移动端的执行用户
-Usudo到SUDO_USERNAME,代替root用户
-c指定建立连接的类型,一般有ssh,localhost FILES
ansible命令的用法举例
一般格式:ansible host -m 模块 -a 命令
软件安装:ansible host -m apt -a ‘name=gcc state=present’
或者ansible host -m yum -a “name=ntp state=installed”
执行命令:ansible host -m shell -a ‘date
拷贝文件:ansible host -m copy -a “src=/tmp/server dest=/tmp/server”
文件拉取:ansible host -m fetch -a "src=/tmp/server dest=/tmp/"
文件属性:ansible host -m file -a “dest=/tmp/server mode=755 owner=root group=root”
服务管理:ansible zabbix -m service -a 'name=httpd state=restarted'
批量创建用户和密码:ansible zabbix -m user -a 'name=test003 password="$1$fUuOq8NK$7h3hD4bvJTX0jmoN40S7p1"'
附:
批量创建用户和密码时可以使用该命令
ansible host -m shell -a ‘useradd username’
ansible host -m shell -a ‘echo password | passwd username --stdin’

模块:
ansible模块可以用ansible-doc -l命令查看,截止到发稿,ansible模块个数已有将近600个,而常用的模块也就十个左右,掌握了常用模块的使用就可以完成绝大多数的自动化操作。
ommand模块 [执行远程命令(默认模块)]
不支持管道操作
ansible testservers -m command -a 'uname -n'


script模块 [在远程主机执行主控端的shell/python脚本 ]
直接指定脚本位置即可
ansible testservers -m script -a '/etc/ansible/test.sh


shell模块 [类似于command模块、支持管道传递]
比较常用的模块
ansible testservers -m shell -a 'cat /tmp/test | grep ^test'


raw模块 [类似于command模块、支持管道传递]
ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print \$2}' |awk -F: '{print \$2}'"

yum模块[对客户端进行yum操作]
使用yum安装软件,name为yum名,state为接下来的动作,一般情况下,state后面的参数以ed结尾
ansible test -m yum -a 'name=sshpass state=installed'

copy模块[批量分发文件]

执行该命令需要给dest指定目录和文件名,执行时可能出现md5校验失败的情况,跟ansible软件有一定的关系,根据实际情况判断。
文件拷贝时可以直接给客户端的该文件定义文件属性 参数为 owner=属主 group=属组 mode=权限
Copy时可以使用backup=yes参数对复制过程进行备份,当传输的文件与原来的文件不一样时,会自动备份客户端的源文件,而不是备份服务端文件。
validate='visudo -cf %s'参数可以在文件传输完成后进行校验,默认传输是需要校验的,校验失败颜色为黄色,使用该参数后校验失败颜色为红色
ansible host -m copy -a “src=/tmp/server dest=/tmp/server”


fetch模块[将远程文件拉取到本地]
将远程目标的文件拉取到本地,默认位置为/本地指定文件夹/远程主机名/tmp/文件
使用lfat=yes参数指定本地存放文件夹,启用该参数时若指定的客户端不止一个,则最传输的文件覆盖掉前面传输的文件
ansible host -m fetch -a "src=/tmp/server dest=/tmp/"


file模块[更改目录属性]
File模块用于配置文件或目录属性,dest或path指定文件或目录位置 mode指定权限 owner指定属主,group指定属组
使用state=directory参数可以在客户端创建文件夹
使用state=link dest指定软连接位置 可以创建软连接
ansible host -m file -a “dest=/tmp/server mode=755 owner=root group=root”

service模块[管理服务]
Service 模块用于控制服务的状态,state指定状态
running打开服务 不支持客户端语言为中文
started 打开服务 不支持客户端语言为中文
restarted 重启服务
stopped 关闭服务
重启服务还可以用shell模块参数为控制服务命令

ansible zabbix -m service -a 'name=httpd state=restarted'







运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-265463-1-1.html 上篇帖子: ansible和saltstack简单使用 下篇帖子: ansible安装zabbix_agent客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表