标签:指定 play 属性 syslog pup 技术 Opens manager 不执行
一.Ansible介绍工作原理
各个模块介绍
PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
INVENTORY:Ansible管理主机的清单/etc/anaible/hosts
MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块
PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
API:供第三方程序调用的应用程序编程接口
ANSIBLE: 组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具
二.安装
1.环境
redhat6.5
server1 190.168.3.241
server2 190.168.3.242
server3 190.168.3.243
server1主控制模块
[root@server1 ansible]# yum install -y epel-relase
yum instll ansible -y
2.配置 vim hosts
可以写域名,需要dns解析
后面还可以加配置参数
举例:
[test]
190.168.3.242 ansible_ssh_port=2222 ansible_ssh_user=manager 被管理主机端口号和用户
190.168.3.243 ansible_ssh_private_key_file=/home/example/.ssh/aws.pem 指定key文件
host_key_check=False 跳过ssh连接过程中要输入的yes/no
3.简单命令练习
ansible <host-pattern> [-m module_name] [options]
指令 匹配规则的主机清单 -m 模块名 选项
--version 显示版本
-a 模块参数(如果有)
-m module 指定模块,默认为command
-v 详细过程 –vv -vvv更详细
--list-hosts 显示主机列表,可简写--list
-k, --ask-pass 提示连接密码,默认Key验证
-K,--ask-become-pass 提示使用sudo密码
-C, --check 检查,并不执行
-T, --timeout=TIMEOUT 执行命令的超时时间,默认10s
-u, --user=REMOTE_USER 执行远程执行的用户
-U, SUDO_USER, --sudo-user 指定sudu用户
-b, --become 代替旧版的sudo 切换
ansible-doc: 显示模块帮助
ansible-doc [options] [module...]
-a 显示所有模块的文档
-l, --list 列出可用模块
-s, --snippet 显示指定模块的简要说明
[root@server1 ansible]#ansible -i hosts server -u root -m command -a ‘ls /root‘ -k
190.168.3.242 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog
190.168.3.243 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog
-k要输入密码,所以要做免密
[root@server1 ansible]#ssh-keygen
[root@server1 ansible]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@190.168.3.241
[root@server1 ansible]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@190.168.3.242
免密完测试
简写命令
[root@server1 ansible]# ansible test -a ‘ls /root‘
190.168.3.243 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog
190.168.3.242 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog
[root@server1 ansible]# ansible test -m ping
190.168.3.243 | SUCCESS => {
"changed": false,
"ping": "pong"
}
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}
4.分组写法
[root@server1 ansible]# vim hosts
[root@server1 ansible]# ansible web -m ping
190.168.3.243 | SUCCESS => {
"changed": false,
"ping": "pong"
}
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@server1 ansible]# ansible web_nginx -m ping
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}
三.简单模块介绍
[root@server1 ansible]# ansible-doc -l 显示所有安装模块
[root@server1 ansible]# ansible-doc -s user 显示其中的user模块
1.setup模块 查看远程主机的基本信息
[root@server1 ansible]# ansible web_nginx -m setup
2.ping 远程主机的运行情况
[root@server1 ansible]# ansible web_nginx -m ping
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}
3.file 设置文件属性
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
group:定义文件/目录的属组
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被链接的源文件的路径,只应用于state=link的情况
dest:被链接到的路径,只应用于state=link的情况
state:
directory:如果目录不存在,创建目录
file:即使文件不存在,也不会被创建
link:创建软链接
hard:创建硬链接
touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消链接文件
例子:
做一个软连接
删除软连接
创建文件
标签:指定 play 属性 syslog pup 技术 Opens manager 不执行
原文地址:http://blog.51cto.com/anfishr/2176243