Ansible的group支持all、通配符(*)、IP地址
查看Ansible的版本
$ ansbile —version
[root@test ~]# ansible —version
ansible 1.7.2
[root@test ~]#
消除首次ssh登录时要求输入yes确认
在所有机器上修改/etc/ssh/ssh_config文件中设置StrictHostKeyChecking no即可(默认为 ask )
[root@master ~]# grep “StrictHostKeyChecking” /etc/ssh/ssh_config
StrictHostKeyChecking no
拷贝文件
ansible
示例:
[root@test ~]# ansible all -m copy -a "src=/etc/ssh/ssh_config dest=/etc/ssh/ssh_config owner=root group=root mode=644 force=yes"
192.168.91.135 | success >> {
"changed": true,
"dest": "/etc/ssh/ssh_config",
"gid": 0,
"group": "root",
"md5sum": "d27d7cc9767512b64c84d06544e01546",
"mode": "0644",
"owner": "root",
"size": 2072,
"src": "/root/.ansible/tmp/ansible-tmp-1476168613.68-180284084445387/source",
"state": "file",
"uid": 0
}
[root@test ~]#
查看所有机器的磁盘情况
ansible
测试机器的连通性
ansible
Ansible所有的模块
http://docs.ansible.com/ansible/list_of_all_modules.html
将本机上的配置文件组装发送到远程主机
ansible
将本机上的配置文件组装发送到远程主机,带分隔符
ansible
设定权限进行拷贝
ansible
拷贝的时候备份
ansible
拷贝文件之后进行验证
ansible
fetch一个文件进行保存
ansible
指定路径目录进行保存
ansible
设置文件属性
ansible
创建目录
ansible
修改权限
ansible
创建软连接
ansible
添加其中的节的值
ansible
基础模块使用
并行和Shell命令
设置ssh-agent记住认证
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
10秒内重启
$ ansible
在默认情况下,ansible使用的是当前用户,当你需要使用其他用户的时候,可以使用选项-u username
$ ansible
要使用sudo的时候
$ ansible
—ask-sudo-pass(-K)此选项是用来询问sudo的密码,如果设置了,如果未设置,那么无需使用
也可以在sudo到别的用户来进行执行
$ ansible
参数-f 10表示并发进行,也就是10个进程同时运行,在使用的时候,默认的情况下为5,选择合适的数据,从而使得系统能够进行处理
参数-m表示选择的模块,在默认情况下,command是默认的模块
Command不适用于有shell变量的情况,也不适用于有管道符的情况,如果要使用此种情况,那么可以使用shell模块
使用Shell模块
$ ansible
文件传输
传输文件到很多主机
$ ansible
修改用户和用户组权限
$ ansible
$ ansible
创建目录
$ ansible
管理包
确定一个包已经安装,但是不更新
ansible
确定一个包安装的是指定版本
ansible
确定一个包是最新包
ansible
确定一个包未安装
ansible
用户和用户组
创建用户和管理已经存在的用户和组
$ ansible
$ ansible
服务管理
确定一个服务正在运行
$ ansible
重启一个服务
ansible
确定一个服务是停止的
ansible
限制后台运行时间
后台运行总是耗费比较长的时间,从而其状态在随后总是能够查看的,如果踢掉主机,又不想轮训
$ ansible
如果要检查服务的状态,可以使用模块async_status,传递job id
$ ansible
轮训是内建的
$ ansible
参数-B表示运行最多30分钟,30*60,-P 60 轮训其状态每60S,
当时间运行在-B参数后的时间之后,此服务会被停止运行。
可以使用参数—forksvalue,来确保服务尽快运行
收集信息
$ ansible