项目实战10.1—企业级自动化运维工具应用实战-ansible (2)

⑤ 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"组中的数据库服务器集合

项目实战10.1—企业级自动化运维工具应用实战-ansible

 

2、ping 模块,主机连通性测试

# ansible all -m ping

项目实战10.1—企业级自动化运维工具应用实战-ansible

 

3、Command 模块

(1)介绍

命令模块接受命令名称,后面是空格分隔的列表参数。给定的命令将在所有选定的节点上执行。

不会通过shell进行处理,比如$HOME和操作如"小于"<",">", "|", ";","&"' 工作(需要使用(shell)模块实现这些功能)。

 

(2)选项

chdir # 在执行命令之前,先切换到该目录 creates # 一个文件名,当这个文件存在,则该命令不执行,可以用来做判断 removes # 一个文件名,这个文件不存在,则该命令不执行,与creates相反的判断 executable # 切换shell来执行命令,需要使用命令的绝对路径(不常用,常用下面shell 模块) free_form # 要执行的Linux指令,一般使用Ansible的-a参数代替(不常用,常用下面shell 模块) 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywgfg.html