ansile常用模块:
一、setup
收集所有信息
ansible all -m setup -a
查看所有主机名
ansible all -m setup -a "filter=ansible_nodename
查看网卡信息
ansible test239 -m setup -a "filter=ansible_ens33
二、copy
#backup : 覆盖备份 y/n
#content : 拷贝(是覆盖,不是追加)
#dest : 路径
#directory_mode : 设定权限
#force : 强制覆盖
三、synchronize
compress:开启压缩,默认为开启 archive:是否采用归档模式同步,保证源文件和目标文件属性一致 checksum:是否效验 dirs:以非递归的方式传送目录 links:同步链接文件 recursive:是否递归yes/no rsync_opts:使用rsync的参数 copy_links:同步的时候是否复制链接 delete:删除源中没有但目标存在的文件,使两边内容一样,以推送方为主 src:源目录及文件 dest:目标文件及目录 dest_port:目标接收的端口 rsync_path:服务的路径,指定rsync在远程服务器上执行 rsync_remote_user:设置远程用户名 –exclude=.log:忽略同步以.log结尾的文件,这个可以自定义忽略什么格式的文件,或者.txt等等都可以,但是由于这个是rsync命令的参数,所以必须和rsync_opts一起使用,比如rsync_opts=--exclude=.txt这种模式 mode:同步的模式,rsync同步的方式push、pull,默认是推送push,从本机推送给远程主机,pull表示从远程主机上拿文件 四、file
#force : 强制执行
#group :设置文件的属组
#mode : 设置文件的权限
#owner : 设置文件的属主
#path= : 被管理文件的路径。别名:'dest','name'
#recurse : 递归设置指定的文件属性(仅适用于state =目录)
#src : 链接到的文件的路径(仅适用于“state = link”)。将接受绝对的,相对的和不存在的路径。相对路径未扩展。
#absent : 代表删除
五、ping
检查指定节点机器是否还能连通
ansible webserver -m ping
六、group
gid 指创建的组ID信息 name 指创建组名称信息 state absent 删除指定的用户组 = present 创建指定的用户组 七、user
append : 如果是yes,就是给这个用户添加一个组
comment:可选择地设置用户帐户的描述(也称为“GECOS”)。
createhome :除非设置为“no”,否则当创建帐户或主目录不存在时,将为用户创建主目录。
force : 当与state = absent'一起使用时,行为与
userdel --force'一样。
generate_ssh_key : 为yes时,生成秘钥对。生成密钥时,只会生成公钥文件和私钥文件,和直接使用ssh-keygen指令效果相同,不会生成authorized_keys文件。
group:设置用户主组,后面跟用户组名称
groups:设置多个组,当设置为'groups='的时候,用户将从主组以外的所有组移除
home:可以选择设置用户的主目录。
move_home :如果与“home =”一起使用时设置为“yes”,则尝试将用户的主目录移动到指定的目录(如果尚未存在)。
name= :创建,删除或修改用户的名称。
non_unique :可选地,当与-u选项一起使用时,该选项允许将用户ID更改为非唯一值。
password:(可选)将用户密码设置为此加密值。
remove:当与state = absent'一起使用时,行为与
userdel --remove'一样。
shell:可选择地设置用户的shell。
ssh_key_bits:可选择指定要创建的SSH密钥中的位数。
ssh_key_comment:(可选)定义SSH密钥的注释。
ssh_key_file :(可选)指定SSH密钥文件名。
ssh_key_passphrase:设置SSH密钥的密码。 如果没有提供密码,SSH密钥将默认没有密码。
ssh_key_type:(可选)指定要生成的SSH密钥的类型。 可用的SSH密钥类型将取决于目标主机上的实现。
state : 帐户是否应该存在 当“absent”时,删除用户帐户。
system : 创建帐户时,将其设置为“yes”将使用户成为系统帐户。 现有用户无法更改此设置。
uid : 可选择地设置用户的“UID”。
八、shell
chdir 在执行命令前,进入到指定目录中 creates 判断指定文件是否存在,如果存在,不执行后面的操作 removes 判断指定文件是否存在,如果存在,执行后面的操作 free_form 必须要输入一个合理的命令 九、script
creates:一个文件名,当这个文件存在,则该命令不执行 free_form= :本地脚本路径 removes : removes:一个文件名,当这个文件不存在,则该命令不执行 十、get_url
dest= : 下载到哪里(绝对路径),如果目标是一个目录,就用服务器上面文件的名称,如果目标设置了名称就用目标设置的名称。
force : 如果yes,dest不是目录,将每次下载文件,如果内容改变,替换文件。如果否,则只有在目标不存在时才会下载该文件。
others : [file]模块接受的所有参数也可以在这里工作
sha256sum : 如果将SHA-256校验和传递给此参数,目标文件的摘要将在下载后计算,以确保其完整性
url= : HTTP,HTTPS或FTP URL(http | https | ftp)
url_password : 用于HTTP基本认证的密码。 如果未指定url_username'参数,则不会使用
url_password'参数。
url_username : 用于HTTP基本认证的用户名。 对于允许空密码的站点,此参数可以不使用`url_password'使用。
十一、yum
安装
#ansible all -m yum -a "state=present name=lrzsz"
批量安装
#ansible all -m yum -a "state=latest name=lrzsz,gcc,gcc-c++"
十二、cron
backup #如果yes,那么在修改之后会进行备份,备份的路径在backup_file cron_file #如果指定,请在cron.d中使用此文件,而不是单个用户的crontab。 day #工作应该运行的月份的第几天(1-31,,/2等) hour #工作应该运行的小时(0-23,, / 2等) job #执行命令。 如果state =present则为必需。 minute #工作应该运行一分钟(0-59,,/2等) month #工作应该运行的一个月(1-12,,/2等) name #crontab条目的说明。 state #present(不存在就添加,存在如果是注释状态就取消状态启动此定时任务),absent为删除定时任务 user #crontab应该修改的具体用户。 state:状态, absent意味删除 十三、service
设置开机启动
#ansible all -m service -a "name=httpd enabled=yes
停止服务
ansible all -m service -a "name=httpd state=stopped
启动服务
ansible all -m service -a "name=sshd state=started"
重启服务
#ansible all -m service -a "name=httpd state=restarted"