文章目录
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 主机名称 -m 模块名称 -a '具体命令'
执行返回信息
- 绿色:执行成功但目标主机内容没有被改变
- 黄色:执行成功并且对目标主机做变更
- 红色:执行失败
查看所有模块
ansible-doc -l
查看某个模块帮助文档
ansible-doc xxx
常用模块
1、user
ansible-doc -s user
- name: Manage user accounts
user:
name //要进行创建、修改、移除的用户名
password //设置用户密码。只能使用加密密码作为值
system //值为yes表示创建一个系统用户,只能创建,不能修改已有用户为系统用户
state //present为创建用户,absent为删除用户。默认为present
createhome //创建家目录,已有的用户但家目录不存在也会创建。值为no则为不创建家目录
home //指定创建的家目录的路径
move_home //如果为yes,home则表示为将家目录移动到此选项指定路径下
uid //设置用户uid
group //设置用户的所属组
groups //将用户加入附加组中
shell //设置用户的shell
force //配合'state=absent'时,相当于'userdel --force',即强制删除用户、家目录和邮件列表。
remove //配合'state=absent'时,相当于'userdel --remove ',即删除家目录和邮件列表。
update_password //user是幂等模块。值为'always'将总是修改密码,'on_create'将只在创建用户时设置密码
2、shell
shell模块可以使用linux系统命令,例如
ansible node1 -m shell -a ‘userdel -r test’
3、copy
ansible-doc -s copy
- name: Copy files to remote locations
copy:
backup=[yes|no] //拷贝的同时也创建一个包含时间戳信息的备份文件,默认为no
dest= //目标路径,只能是绝对路径,如果拷贝的文件是目录,则目标路径必须也是目录
content //直接以content给定的字符串或变量值作为文件内容保存到远程主机上,它会替代src选项
directory_mode //当对目录做递归拷贝时,设置了directory_mode将会使得只拷贝新建文件,旧文件不会被拷贝。默认未设置
follow=[yes|no] //是否追踪到链接的源文件。
force=[yes|no] //设置为yes(默认)时,将覆盖远程同名文件。设置为no时,忽略同名文件的拷贝。
group //设置远程文件的所属组
owner //设置远程文件的所有者
mode= //设置远程文件的权限。使用数值表示时不能省略第一位,如8644。#也可以使用" u+rwx'或" u=rw,g=r,o=r'等方式设置。
src= //拷贝本地源文件到远程,可使用绝对路径或相对路径。如果路径是目录,且目录后加了#斜杠"/",则只会拷贝目录中的内容到远程,如果目录后不加斜杠,则拷贝目录本身和#目录内的内容到远程。
4、template
ansible-doc -s template
- name: Template a file out to a remote server
template:
backup //拷贝的同时也创