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"