Ansible执行逻辑
更新时间: 2023-04-21 11:31:39
阅读 118
Ansible执行逻辑
easyops-ansible简介
- ansible组件在easyops中以容器方式运行
- 从easyops-2.0开始ansible容器从1个扩展成2个
- easyops-ansible容器中安装了ansible本身,然后运行了一个ansible-runner-service以提供restful api方式调用ansible能力
easyops-ansible位置
ansible容器目录说明
- ${DEPLOY_DIR}/configs:/mnt/mockdisk/configs:rw
- ${DEPLOY_DIR}/easyops-ansible/logs:/mnt/mockdisk/logs:rw
- ${DEPLOY_DIR}/easyops-ansible/artifacts:/mnt/mockdisk/playbooks_root_dir/artifacts:rw
- ${DEPLOY_DIR}/easyops-ansible/keys:/mnt/mockdisk/playbooks_root_dir/keys:rw
- ${DEPLOY_DIR}/easyops-ansible/env:/mnt/mockdisk/playbooks_root_dir/env:rw
- ${DEPLOY_DIR}/easyops-ansible/inventory:/mnt/mockdisk/playbooks_root_dir/inventory:rw
- ${DEPLOY_DIR}/../services-spec/playbooks:/mnt/mockdisk/playbooks_root_dir/project/playbooks:rw
- ${DEPLOY_DIR}/../services-spec/roles:/mnt/mockdisk/playbooks_root_dir/project/roles:rw
- ${DEPLOY_DIR}/../ansible-data:/mnt/mockdisk/playbooks_root_dir/data
重点是以下目录
- artifacts:ansible执行过的任务,对应界面上每一个审计中操作
- keys:主机的私钥,使用ssh连接方式需要
- project:playbook挂载位置
如下图,展示了ansible容器中相关目录的路径
- ansible执行任务的目录说明
- 重点说下inventory:下面是一个大yml文件,ansible playbook执行过程中所访问的变量基本都来自于这个yml中
easyops inventory结构
- 在基本概念模型中,我们讲过组件实例是管理的最小单位,同时组件实例也是ansible playbook执行的最小单位。
- 如下图service1_component1_instance1即1个执行节点
- 访问变量的优先级顺序也是优先访问此节点下的,其次是service1_component1,再是service1下的
- 同时我们可以通过关键字hostvars[xxx]定位到某一个节点位置,以访问目标节点下的变量
easyops playbook结构
- spec.yml 服务声明,描述服务的基本信息,是接入easyops平台的身份标识
- Playbook 服务及其组件的行为描述,是作为调用入口
- role 服务或组件的具体执行内容,变量定义,文件模板
服务描述文件spec.yml
playbook行为描述
以hive为例
关于《easyops playbook开发指南》
关于更多easyops playbook相关介绍和开发指南,请参阅: https://docs.popo.netease.com/lingxi/10ef97660b8d4e06a200a31767f12d8b#edit
文档反馈
以上内容对您是否有帮助?