ansible(一)

一、ansible介绍

1、ansible简介

ansible是一款自动化运维的工具,基于python开发,集合众多运维工具的优点,可以实现批量的系统配置、程序部署、命令执行等功能。
ansible基于模块工作,本身并没有批量部署的额能力。真正执行的是ansible运行的模块,而ansible只是提供一个框架。

2、ansible特点

①模块化。调用特定的模块完成特定的任务。
②轻量级,部署简单。没有客户端,节点无需任何操作,主机部署ansible。
③默认使用SSH协议。
④主从集中化管理。
⑤配置简单、功能强大、扩展性强。
⑥可以自定义模块,支持任何编程语言编写模块。
⑦通过playbooks(剧本)来定制强大的配置、状态管理。
⑧具有幂等性,一个操作在一台主机上执行一次和多次结果都一样。

3、核心组件

ansible(主体)

ansible的核心程序,提供一个命令行接口给用户对ansible进行管理操作。

host inventory(主机清单)

为ansible定义了管理主机的策略。一般小型环境下我们只需要在host文件中写入主机的ip地址即可。但是当中大型环境下,我们可能需要使用静态inventory或者动态主机清单来生成我们需要执行的目标主机。

core modules(核心模块)

ansible执行命令的功能模块,多数为内置的核心模块。

custom modules(扩展模块)

如果ansible本身自带的模块无法满足需求,用户可以自定义相应的模块来满足需求。

connection plugins(连接插件)

模块功能的补充,如链接类型插件、循环插件、变量插件、过滤插件等。(该功能不常用)

playbook(剧本)

编排定义ansible任务集的配置文件,由ansible顺序依次执行,通常是json格式的yml文件。

api

供第三方程序调用的应用程序编程接口。

二、ansible配置

1、安装epel仓库

yum install -y epel-release
在这里插入图片描述

2、安装ansible

yum install -y ansible
在这里插入图片描述

3、ansible命令参数

-v

详细模式,如果执行成功输出详细结果。

-i

指定host文件路径,默认在/etc/ansible/hosts。

-f,-forks=NUM

NUM默认是整数5,指定fork开启同步进程的个数。

-m

指定使用的moudule名称,默认command模块。

-a

指定模块参数

-k

提示输入SSH密码而不是使用基于ssh密钥认证。

-sudo

提权,使用root权限。

-K

提示输入sudo密码。

-u

指定移动端的执行用户。

-C

测试命令执行会改变什么内容,不会真正的去执行。

4、ansible配置文件

ansible/ansible.cfg
主配置文件,配置ansible工作特性。
ansible/hosts
主机清单
ansible/roles/
存放角色的目录

5、ansible命令工具

ansible-doc

查看配置文档,模块功能查看工具。
ansible-doc 模块名
在这里插入图片描述
ansible-doc -s 模块名
查看简单说明
在这里插入图片描述

ansible-galaxy

上传下载代码或模块的官网平台。
列出所有已安装的galaxy
ansible-galaxy list
在这里插入图片描述
安装galaxy
在这里插入图片描述
删除galaxy
在这里插入图片描述

ansible-playbook

定制自动化任务,编排剧本工具

ansible-pull

远程执行命令的工具

ansible-vault

文件加密工具
ansible-vault encrypt *.yml
加密yml文件
在这里插入图片描述
ansible-vault decrypt *.yml
解密yml文件
在这里插入图片描述

ansible-vault view *.yml
查看yml加密文件
在这里插入图片描述

ansible-vault edit *.yml
编辑加密文件
在这里插入图片描述

ansible-vault rekey *.yml
重新修改加密口令
在这里插入图片描述

ansible-vault create new.yml
创建新文件
在这里插入图片描述

ansible-console

基于console界面与用户交互的执行工具
用户名@当前操作的主机组(当前组的主机数量)[f:并发数]$

三、ansible应用

ansible 192.168.10.103
host1 192.168.10.101

1、定义主机清单

修改/etc/ansible/hosts文件
在这里插入图片描述
中括号中的是组名,下面可以是ip或者域名。多台主机可以用中括号括起来,用:作为分隔符。比如[1:100]就表示从1到100.
在这里插入图片描述

2、基于ssh免密登录

①创建密钥对

在这里插入图片描述

②分发密钥

在这里插入图片描述

3、ping模块测试连通性

-i 指定hosts文件地址,默认情况下在/etc/ansible/hosts,所以可以省略。
-m 指定使用的模块

①基于ip

在这里插入图片描述

②基于组名

在这里插入图片描述

4、ansible模块使用

command是ansible的默认模块不指定-m参数的时候使用的就是command模块。command模块常见的命令都可以使用但命令的执行不是通过shell来执行的,不支持管道,没法批量执行。
使用shell模块的时候默认是通过/bin/bash来执行的,所有在终端输入的命令都可以执行。
使用scripts模块可以在本地写一个脚本在远程服务器上执行。

①command模块

ansible -i /etc/ansible/hosts webserver -m command -a “命令”
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

②shell模块

ansible -i /etc/ansible/hosts webserver -m shell -a “命令”
在这里插入图片描述
在这里插入图片描述

③script模块

ansible -i /etc/ansible/hosts webserver -m script -a “/etc/ansible/hosts”
写一个脚本
在这里插入图片描述
远程执行
在这里插入图片描述

④copy模块

实现宿主机向目标主机拷贝文件,类似scp
ansible -i /etc/ansible/hosts webserver -m copy -a “src=文件 dest=目标位置 owner=属主 group=属组 mode=权限”
在这里插入图片描述
在这里插入图片描述
PS:如果目标位置不存在该目录时将会自动创建。
在这里插入图片描述
在这里插入图片描述

⑤file模块

修改目标文件权限
ansible -i /etc/ansible/hosts webserver -m file -a “path=目标文件 mode=权限”
在这里插入图片描述
在这里插入图片描述
也可以修改属主属组
在这里插入图片描述
在这里插入图片描述

⑥stat模块

获取远程文件信息
ansible -i /etc/ansible/hosts webserver -m stat -a “path=地址”
在这里插入图片描述

⑦get_url模块

实现远程主机下载指定的url地址支持sha256sum文件校验。
ansible -i /etc/ansible/hosts webserver -m get_url -a "url= 参数 "
url 资源在网上的地址
dest 文件下载位置的绝对路径
mode 文件下载位置的绝对路径
checksum 对下载的资源进行校验
timeout URL请求超时时间,默认10s
force 强制下载,有责覆盖。默认为no

⑧cron模块

远程配置crontab
ansible -i /etc/ansible/hosts webserver -m cron -a “name= ’ ’ minute=’ ’ job=’ '”
时间参数 默认为*
minute :指定分钟
hour :指定小时
day:指定日期
mouth:指定月份
weekday:指定周几
job/value:指定需要执行的命令
name:任务名称
state:present创建/absent移除
user:指定用户
special_time:指定特殊事件(annually每年,daily每天,hourly每小时,mouthly每月,reboot重启时,weekly每周,yearly每年)
disables:yes/no,是否禁用指定的任务,默认为no(只有在state=present时才有意义)
env:yes/no,是否是在设置cron的环境变量,默认为no。如果设为yes,那么name和value参数的值分别代表环境变量的名称和值。

⑨service模块

远程管理主机系统服务

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值