⑤ log_path:Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到日志文件中,需要设置log_path 来指定一个存储Ansible日志的文件。配置实例如下:
log_path = /var/log/ansible.log
另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录
3、ansible 命令
(1)Ansible命令集
/usr/bin/ansible #Ansibe AD-Hoc #临时命令执行工具,常用于临时命令的执行
/usr/bin/ansible-doc #Ansible #模块功能查看工具
/usr/bin/ansible-galaxy #下载/上传优秀代码或Roles模块的官网平台,基于网络的,也可以去github 上找自己想要的模板
/usr/bin/ansible-playbook #Ansible定制自动化的任务集编排工具,执行playbook剧本
/usr/bin/ansible-pull #Ansible远程执行命令的工具,拉取配置而非推送配置(使用较少,海量机器时使用,对运维的架构能力要求较高)
/usr/bin/ansible-vault #Ansible文件加密工具
/usr/bin/ansible-console #Ansible基于Linux Consoble界面可与用户交互的命令执行工具
(2)命令格式:
ansible <host-pattern> [-f forks] [-m module_name] [-a args]
我们可以通过 ansible -h查看帮助
Usage: ansible <host-pattern> [options] Options:
① -a MODULE_ARGS, --args=MODULE_ARGS 模块的参数,如果执行默认COMMAND的模块,即是命令参数,如:"date","pwd"等等 module arguments 模块参数
② -C, --check don't make any changes; instead, try to predict some of the changes that may occur 只是测试一下会改变什么内容,不会真正去执行;相反,试图预测一些可能发生的变化
4、ansible 使用前配置(1)Ansible配置公私钥
配置ansible 使用公钥验证
虽然ansible支持其他主机认证方式,但是我们最常用的的还是基于秘钥的认证:
① 首先生成秘钥
ssh-keygen -t rsa -P ''
② 然后向主机分发秘钥:
ssh-copy-id root@ #@后面跟主机名或者IP地址3、如果出现以下情况:
# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.6.72
-bash: ssh-copy-id: command not found
请尝试: yum -y install openssh-clientsansible
实战二:ad-hoc(点对点)模块的使用 1、设置hosts 远程被控制主机
vim /etc/ansible/hosts
[web]
192.168.30.7
192.168.30.2
定义hosts 有3类:
① Ex 1:未分组的主机,在任何组头之前指定
② Ex 2:有组的主机,一组属于"webservers"组的主机
③ Ex 3:和数据库有关的,"dbservers"组中的数据库服务器集合
2、ping 模块,主机连通性测试
# ansible all -m ping
3、Command 模块
(1)介绍
命令模块接受命令名称,后面是空格分隔的列表参数。给定的命令将在所有选定的节点上执行。
它不会通过shell进行处理,比如$HOME和操作如"小于"<",">", "|", ";","&"' 工作(需要使用(shell)模块实现这些功能)。
(2)选项
chdir # 在执行命令之前,先切换到该目录 creates # 一个文件名,当这个文件存在,则该命令不执行,可以用来做判断 removes # 一个文件名,这个文件不存在,则该命令不执行,与creates相反的判断 executable # 切换shell来执行命令,需要使用命令的绝对路径(不常用,常用下面shell 模块) free_form # 要执行的Linux指令,一般使用Ansible的-a参数代替(不常用,常用下面shell 模块)