云社区 博客 博客详情

自动化运维工具Ansible

木栖西 发表于 2020-02-29 20:03:14 2020-02-29
0
0

【摘要】 Ansible作用及特点?协调应用程序生命周期应用部署配置管理工作流程编排无代理-可预测,可靠,安全无代理架构使用OpenSSH通信无代理维护成本Ansible架构USERS:管理员,有两种执行方式,可以通过Ansible执行管理命令批量操作远程主机,也可以通过playbook管理复杂的任务INVENTORY:保存需要管理主机清单。包括:IPSSH端口账号密码API:提供调用接...

Ansible作用及特点?

协调应用程序生命周期

  • 应用部署
  • 配置管理
  • 工作流程编排

无代理-可预测,可靠,安全

  • 无代理架构
  • 使用OpenSSH通信
  • 无代理维护成本

Ansible架构

自动化运维工具Ansible

USERS:管理员,有两种执行方式,可以通过Ansible执行管理命令批量操作远程主机,也可以通过playbook管理复杂的任务
INVENTORY:保存需要管理主机清单。包括:IP SSH端口 账号密码
API:提供调用接口
MODULES:功能模块,Ansible所有功能都是由模块提供
PLUGINS:插件,Ansible内部核心功能提供


Ansible使用要求

服务端使用要求:
Python 2.6/2.7/3.X
RedHat,Debian,CentOS等,不支持Windows

被管理端要求:
OpenSSH
Python 2.6/2.7/3.X

Ansible配置文件
vi /etc/ansible/ansible.cfg

[defaults]
# some basic default values...
#主机清单配置文件
inventory      = /etc/ansible/hosts
#library        = /usr/share/my_modules/
#module_utils   = /usr/share/my_module_utils/
#remote_tmp     = ~/.ansible/tmp
#local_tmp      = ~/.ansible/tmp
执行任务时的并发数
forks          = 5
#poll_interval  = 15
#sudo_user      = root
#ask_sudo_pass = True
#ask_pass      = True
#transport      = smart
操作远程主机的默认端口
remote_port    = 22
#module_lang    = C
#module_set_locale = False
指纹检查
host_key_checking = False
密钥认证的私钥
private_key_file = /path/to/file

Ansible常用模块

command和shell:执行shell命令,command为默认模块(不支持管道等特殊命令)
copy和file:文件传输
yum:软件包管理
user:用户和组
git:从源代码管理系统中部署
service:管理服务
setup:收集目标主机信息


Playbook使用

Playbook使用YAML作为编排语言,适合配置管理和应用部署
自动化运维工具Ansible

YAML语法
缩进表示层级关系
不支持TAB缩进,使用空格缩进
通常开头缩进2个空格。字符后缩进一个空格,如冒号、逗号等
“---”表示YAML文件的开始,“#”表示注释
Playbook文件结构
gather_facts表示是否收集目标主机信息参数
一个name为一个动作(play)
tasks表示再Playbook中具体要做哪些工作
{{}}表示对变量的引用
notify表示在任务结束时触发
handlers表示由特定条件触发Tasks
tags表示任务控制
register表示注册变量
facts表示系统信息变量
when表示条件控制
Playbook文件调试
1.执行ansible-playbook时添加“--syntax-check”参数
2.debug: msg=
Playbook文件复用
include&import区别
include(动态):在运行时导入
不能使用notify触发来自include内处理程序名称(handlers)
“--list-tags”“--list-tasks”不会显示到输出
import(静态):在Playbook解析时预先导入
不能与循环一起使用
将变量用于目标文件或角色名称时,不能使用inventory中的变量

Roles角色

Roles目录结构
自动化运维工具Ansible
site.yml:统一入口
tasks:包含角色要执行主要任务列表
handlers:包含角色使用的处理程序
defaults:角色默认变量
vars:角色其他变量
files:角色部署时用到的文件
templates:角色部署时用到的模板
meta:角色定义的元数据

文章来源: blog.51cto.com,作者:一朵西兰花,版权归原作者所有,如需转载,请联系作者。

原文链接:https://blog.51cto.com/13438572/2474455

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

上一篇:c++常用方法

下一篇:CentOS7配置本地yum仓库

评论 (0)


登录后可评论,请 登录注册

评论