ansible使用临时命令通过模块来执行任务

使用临时命令通过模块来执行任务一、查看系统上安装的所有模块ansible-doc -l
查看ping模块帮助文档ansible-doc ping
1、ansible模块文件模块:copy:将本地文件复制到受控主机file:设置文件的权限和其他属性lineinfile:确保特定行是否在文件中,也就是说修改文件内容synchronize:使用rsync同步内容
软件包模块package:使用操作系统本机的自动检测软件包管理器管理软件包yum:使用yum软件包管理器管理软件包apt:使用apt软件包管理器管理软件包dnf:使用dnf软件包管理器管理软件包pip:从PyPI管理Python软件包
系统模块firewalld:使用firewalld管理任意端口和服务reboot:重新启动计算机service:管理服务user:添加、删除和管理用户账户
Net Tools模块get_url:通过http、https或者ftp下载文件nmcli:管理网络uri:与WEB服务交互
语法:ansible  bgx      -m      command      -a      'df -h'命令   主机名称  指定模块   模块名称   模块动作   具体命令
执行的状态返回信息:绿色:执行成功并且不需要做改变的动作黄色:执行成功并且对目标主机做变更红色:执行失败
常用模块案例1:user

ansible使用临时命令通过模块来执行任务

文章插图
临时命令使用user模块来确保newbie用户存在于node1.example.com上,并且其UID为4000
[galaxy@server ~]$ ansible server1 -m user -a 'name=newbie uid=4000 state=present'创建用户并指定密码,如果该用户存在,仍然修改密码
[galaxy@server ~]$ openssl passwd -1 linux$1$bChlQ4jX$97x50MlATs0PA6UsObqN1.[galaxy@server ~]$ ansible all -m user -a 'name=chenyu state=present password="$1$bChlQ4jX$97x50MlATs0PA6UsObqN1." update_password=always'创建用户并指定密码,但是如果改用户存在,则不修改密码
[galaxy@server ~]$ openssl passwd -1 redhat$1$zcVeWQiB$dIsAdkcv91mTjrCaayN3F/[galaxy@server ~]$ ansible all -m user -a 'name=chenyu12 state=present password="$1$zcVeWQiB$dIsAdkcv91mTjrCaayN3F/"  update_password=on_create'案例2:shell临时命令使用shell模块来删除node1.example.com节点中的用户newbieansible server1 -m shell -a ‘userdel -r newbie’
案例3:copyansible webserver -m copy -a ‘src=https://www.huyubaike.com/etc/fstab dest=/var/tmp/fstab’
ansible webserver -m copy -a ‘src=https://www.huyubaike.com/etc/fstab dest=/var/tmp/fstab group=chenyu owner=chenyu’
ansible使用临时命令通过模块来执行任务

文章插图
案例4:template模块---template模块用法和copy模块用法基本一致,它主要用于复制配置文件
ansible使用临时命令通过模块来执行任务

文章插图
ansible all -m template -a 'src=https://www.huyubaike.com/usr/share/doc/httpd/httpd-vhosts.conf dest=/etc/httpd/conf.d/httpd-vhosts.conf group=root owner=root mode=0644 '
案例5:file   修改文件的权限属性和context值ansible webserver -m file -a 'path=/var/tmp/fstab mode=g+w mode=o+w group=galaxy owner=galaxy setype=samba_share_t'
mode:设置权限可以是mode=g+w 也可以是mode=666group:设置文件的所属组owner:设置文件的所有者setype:修改文件的context值
ansible使用临时命令通过模块来执行任务

文章插图
新建文件ansible webserver -m file -a 'path=/var/tmp/bbb state=touch'
新建目录ansible webserver -m file -a 'path=/var/tmp/cc state=directory'
删除文件或者目录ansible webserver -m file -a 'path=/var/tmp/cc state=absent'

经验总结扩展阅读