Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

Linux轻量级自动运维工具-Ansible浅析

$
0
0
Ansible 是什么 ?
Linux轻量级自动运维工具-Ansible浅析
ansible架构图
Linux轻量级自动运维工具-Ansible浅析
ansible特性

模块化:调用特定的模块,完成特定的任务;

基于python语言研发,由Paramiko, PyYAML和Jinja2三个核心库实现;

部署简单:agentless;

支持自定义模块,使用任意编程语言;

强大的playbook机制;

幂等性;

安装及程序环境:

程序:

ansible

ansible-playbook

ansible-doc

配置文件:

/etc/ansible/ansible.cfg

主机清单:

/etc/ansible/hosts

插件目录:

/usr/share/ansible_plugins/

安装ansible


Linux轻量级自动运维工具-Ansible浅析

安装依赖包


Linux轻量级自动运维工具-Ansible浅析
ansible命令的使用: Usage: ansible <host-pattern> [options]

常用选项:

-m MOD_NAME

-a MOD_ARGS

配置Host Inventory:

/etc/ansible/hosts

[group_id]

HOST_PATTERN1

HOST_PATTERN2

示例:

首先对此文件进行备份操作,以防后面需要用到默认配置文件


Linux轻量级自动运维工具-Ansible浅析

进入到/etc/ansible/hosts文件,此处绿色光标以下的内容是没有用的,都是示例,可以删除掉,然后添加我们下面实验操作用到的主机。


Linux轻量级自动运维工具-Ansible浅析

添加一组websrvs服务器,以用于下面的测试


Linux轻量级自动运维工具-Ansible浅析

测试主机连通性

这里报错是因为实验用的主机交换其他两台主机的公钥/私钥的原因导致的


Linux轻量级自动运维工具-Ansible浅析

实验SSH免密码登陆设置

生成私钥和公钥ssh-keygen -t rsa -P ''


Linux轻量级自动运维工具-Ansible浅析

复制公钥文件问authorized_keys


Linux轻量级自动运维工具-Ansible浅析

把公钥传送到其他主机


Linux轻量级自动运维工具-Ansible浅析

在68的主机上面可以看见公钥已经传送过来了,并且确认文件的权限是否正确


Linux轻量级自动运维工具-Ansible浅析

重复以上操作把公钥发送给69的主机


Linux轻量级自动运维工具-Ansible浅析

然后重新执行ansible的ping模块命令查看该两台主机的连通性

可以发现此时已经成功,那么下面就开始介绍ansilbe的其他模块


Linux轻量级自动运维工具-Ansible浅析

最后记得利用ansible同步一下所有主机的时间,以免某主机的时间有错误,后面看日志起来会造成混乱


Linux轻量级自动运维工具-Ansible浅析
ansible模块:

获取模块列表:ansible-doc -l

获取指定模块的使用帮助:ansible-doc -s MOD_NAME

常用模块:

ping模块:探测目标主机是否存活;


Linux轻量级自动运维工具-Ansible浅析
示例:测试所有的主机的连通性
Linux轻量级自动运维工具-Ansible浅析

command模块:在远程主机执行命令;


Linux轻量级自动运维工具-Ansible浅析

示例1:让所有主机同步时间

此处没有给出指定的-m command命令,是因为ansible的模块默认就是command


Linux轻量级自动运维工具-Ansible浅析

示例2:让每一台主机都执行uname -r命令


Linux轻量级自动运维工具-Ansible浅析

示例3:在主机上面都创建一个用户


Linux轻量级自动运维工具-Ansible浅析

查看两台主机是否已经创建该用户


Linux轻量级自动运维工具-Ansible浅析
Linux轻量级自动运维工具-Ansible浅析
Linux轻量级自动运维工具-Ansible浅析

查看用户信息:


Linux轻量级自动运维工具-Ansible浅析

帮这两个用户改密码,此处需要注意的是,虽然用下面的命令看似执行成功,但是当我们验证的时候,就会发现密码错误了,这是因为ansible的command模块并不支持管道等输出,所以下面介绍另外一个ansible的模块shell


Linux轻量级自动运维工具-Ansible浅析
Linux轻量级自动运维工具-Ansible浅析

shell模块 :在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等

注意:command和shell模块的核心参数直接为命令本身;而其它模块的参数通常为“key=value”格式;


Linux轻量级自动运维工具-Ansible浅析

示例:批量修改其他主机的特定用户的密码


Linux轻量级自动运维工具-Ansible浅析

此时可以发现已经可以登陆成功


Linux轻量级自动运维工具-Ansible浅析

copy模块:复制文件到远程主机

用法:

(1) 复制文件

-a "src= dest= "

(2) 给定内容生成文件

-a "content= dest= "

其它参数:mode, owner, group, …


Linux轻量级自动运维工具-Ansible浅析

示例:复制文件到其他主机

此处创建一个测试文件


Linux轻量级自动运维工具-Ansible浅析

复制文件到其他主机

下面红色的报错信息是,如果要传送文件,该主机的指定目录需要存在,如果不存在,就是提示错误


Linux轻量级自动运维工具-Ansible浅析

创建对应的目录


Linux轻量级自动运维工具-Ansible浅析

重新传送文件,已经没有错误提示,但是此处也可以看见,如果文件已经存在,则原文件会被覆盖掉,并且此处也没有任何提示覆盖文件的信息,所以操作的时候就需要注意了,以免覆盖掉重要的文件


Linux轻量级自动运维工具-Ansible浅析

验证文件


Linux轻量级自动运维工具-Ansible浅析

file模块:设置文件的属性

用法:

(1) 创建目录:

-a "path= state=directory"

(2) 创建链接文件:

-a "path= src= state=link"

(3) 删除文件:

-a "path= state=absent“


Linux轻量级自动运维工具-Ansible浅析

示例:修改文件的权限和属主


Linux轻量级自动运维工具-Ansible浅析

验证文件


Linux轻量级自动运维工具-Ansible浅析

示例:创建文件的软连接


Linux轻量级自动运维工具-Ansible浅析

验证文件


Linux轻量级自动运维工具-Ansible浅析

设置文件的状态为absent(即删除文件)


Linux轻量级自动运维工具-Ansible浅析

验证


Linux轻量级自动运维工具-Ansible浅析

fetch模块:从远程主机拿文件


Linux轻量级自动运维工具-Ansible浅析

示例:从10.1.156.69主机拿一个文件


Linux轻量级自动运维工具-Ansible浅析

当抓去一堆文件的时候,也会创建对应的ip地址的目录,以区分文件


Linux轻量级自动运维工具-Ansible浅析

cron模块 :管理计划任务条目

用法:

-a ""

minute=

hour=

day=

month=

weekday=

job=

name=

user=

state={present|absent}


Linux轻量级自动运维工具-Ansible浅析

示例:创建一个同步时间的计划任务,每5分钟同步一下服务器的时间


Linux轻量级自动运维工具-Ansible浅析

验证任务


Linux轻量级自动运维工具-Ansible浅析

示例:删除计划任务


Linux轻量级自动运维工具-Ansible浅析

验证


Linux轻量级自动运维工具-Ansible浅析

hostname模块:管理主机名

用法:

name=


Linux轻量级自动运维工具-Ansible浅析

示例:修改主机名


Linux轻量级自动运维工具-Ansible浅析
Linux轻量级自动运维工具-Ansible浅析

yum模块:使用yum命令完成程序包管理

用法:

-a ""

(1) name= state={present|latest}

(2) name= state=absent


Linux轻量级自动运维工具-Ansible浅析

示例:安装指定包

此实验,首先,确定主机的yum源是可用的,否则实验会失败


Linux轻量级自动运维工具-Ansible浅析

安装samba包


Viewing all articles
Browse latest Browse all 11063

Trending Articles