天天看点

ansible

ansile常用模块:

一、setup

收集所有信息

ansible all -m setup -a

查看所有主机名

ansible all -m setup -a "filter=ansible_nodename

查看网卡信息

ansible test239 -m setup -a "filter=ansible_ens33

二、copy

三、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

五、ping

六、group

gid 指创建的组id信息

name 指创建组名称信息

state absent 删除指定的用户组

= present 创建指定的用户组

七、user

append : 如果是yes,就是给这个用户添加一个组

comment:可选择地设置用户帐户的描述(也称为“gecos”)。

createhome :除非设置为“no”,否则当创建帐户或主目录不存在时,将为用户创建主目录。

force : 当与<code>state = absent'一起使用时,行为与</code>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:当与<code>state = absent'一起使用时,行为与</code>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基本认证的密码。 如果未指定<code>url_username'参数,则不会使用</code>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"

继续阅读