roles

package
v0.7.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsRolesAllow

func IsRolesAllow(stage string, roles []interface{}) bool

判断stage是否在roles执行范围

func NewShellRole

func NewShellRole(args *RoleArgs) error

处理config module适配

Types

type CopyRole

type CopyRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*CopyRole) After

func (c *CopyRole) After()

处理返回日志

func (*CopyRole) Init

func (c *CopyRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*CopyRole) Run

func (c *CopyRole) Run() error

type DockerRole

type DockerRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*DockerRole) After

func (r *DockerRole) After()

处理返回日志

func (*DockerRole) Init

func (r *DockerRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*DockerRole) Run

func (r *DockerRole) Run() error

type FetchRole

type FetchRole struct {
	RoleLC
	// contains filtered or unexported fields
}

远程文件下载struct

func (*FetchRole) After

func (c *FetchRole) After()

处理返回日志

func (*FetchRole) Init

func (c *FetchRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*FetchRole) Run

func (c *FetchRole) Run() error

type GitRepo

type GitRepo struct {
	// contains filtered or unexported fields
}

type Hook

type Hook struct {
	// contains filtered or unexported fields
}

type IncludeRole

type IncludeRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*IncludeRole) After

func (i *IncludeRole) After()

type K8sBasic

type K8sBasic struct {
	// contains filtered or unexported fields
}

对标pod内containerd信息

type K8sRole

type K8sRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*K8sRole) After

func (k *K8sRole) After()

处理返回日志

func (*K8sRole) Hooks

func (k *K8sRole) Hooks() error

hook钩子 进行pod删除

func (*K8sRole) Init

func (k *K8sRole) Init(args *RoleArgs) error

func (*K8sRole) Run

func (k *K8sRole) Run() error

type RoleArgs

type RoleArgs struct {
	// contains filtered or unexported fields
}

@Params stage 当前stage @Params user 远端目标机执行账户 @Params host 执行目标机 @Params vars 公共环境变量 @Params configs 执行playbook @Params currentConfig 当前config @Params msg pipeline消息传递 TODO: context替换,传递上下文 @Params hook 自定义config执行完的钩子函数 @Params isTerminial 是否terminial执行shell

func NewRoleArgs

func NewRoleArgs(stage, user, pwd, host, workdir, reponame string, vars map[string]interface{}, configs []interface{}, msg *Message, hook *Hook, port, timeout int, timeoutexit bool) *RoleArgs

func (*RoleArgs) AddCountByName

func (r *RoleArgs) AddCountByName(ip, item string) error

type RoleFactory

type RoleFactory struct{}

role插件工厂对象,实现Role接口

func (*RoleFactory) Create

func (r *RoleFactory) Create(conf RoleType) (RolePlugin, error)

读取配置,通过反射机制进行对象实例化

type RoleLC

type RoleLC struct {
	// contains filtered or unexported fields
}

Role生命周期 公共父类

func (*RoleLC) After

func (r *RoleLC) After()

执行后环节

func (*RoleLC) Before

func (r *RoleLC) Before() error

执行前的条件判断

func (*RoleLC) Common

func (r *RoleLC) Common(args *RoleArgs) error

common 公共初始化函数

func (*RoleLC) Hooks

func (r *RoleLC) Hooks() error

钩子函数,思考:是否和After以及output插件冲突

func (*RoleLC) Init

func (r *RoleLC) Init(args *RoleArgs) error

初始化

func (*RoleLC) IsHook

func (r *RoleLC) IsHook() bool

执行判断IsHook default is false

func (*RoleLC) Pre

func (r *RoleLC) Pre()

准备环节

func (*RoleLC) Run

func (r *RoleLC) Run()

执行环节

type RolePlugin

type RolePlugin interface {
	// 初始化对象
	Init(*RoleArgs) error

	// 环境准备
	Pre()

	// 执行前
	Before() error

	// 执行中
	// 返回是否执行信号
	Run() error

	// 执行后
	After()

	// 是否执行hook
	IsHook() bool

	// 钩子函数
	Hooks() error
}

执行过程生命周期接口 Role LifeCycle

type RoleType

type RoleType string
const (
	CopyType     RoleType = "copy"
	FetchType    RoleType = "fetch"
	DockerType   RoleType = "image"
	K8sType      RoleType = "k8s"
	ShellType    RoleType = "shell"
	SwarmType    RoleType = "swarm"
	TemplateType RoleType = "template"
	IncludeType  RoleType = "include"
	SystemdType  RoleType = "systemd"
	UserType     RoleType = "user"
	ScriptType   RoleType = "script"
)

func ParseRoleType

func ParseRoleType(config map[interface{}]interface{}) (rt RoleType, isok bool)

自动匹配roleNames对象和目标对象的匹配度 实现yaml即不用新增type字段又能自动匹配Role插件

type ScriptRole

type ScriptRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*ScriptRole) After

func (c *ScriptRole) After()

处理返回日志

func (*ScriptRole) Init

func (c *ScriptRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*ScriptRole) Run

func (c *ScriptRole) Run() error

1. copy file 2. exec script 3. delete script

type ShellRole

type ShellRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*ShellRole) After

func (r *ShellRole) After()

处理返回日志

func (*ShellRole) Init

func (r *ShellRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*ShellRole) Run

func (r *ShellRole) Run() error

执行

type SystemdRole

type SystemdRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*SystemdRole) After

func (s *SystemdRole) After()

处理返回日志

func (*SystemdRole) Init

func (s *SystemdRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*SystemdRole) Run

func (s *SystemdRole) Run() error

type TemplateRole

type TemplateRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*TemplateRole) After

func (r *TemplateRole) After()

处理返回日志

func (*TemplateRole) Init

func (r *TemplateRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*TemplateRole) Run

func (r *TemplateRole) Run() error

操作流程:1. 获取vars和template 2. 解析 3. 上传

type UserRole

type UserRole struct {
	RoleLC
	// contains filtered or unexported fields
}

func (*UserRole) After

func (s *UserRole) After()

处理返回日志

func (*UserRole) Init

func (s *UserRole) Init(args *RoleArgs) error

准备数据 @Param stage 阶段标记 @Param user 远端执行用户 @Param host 目标主机 @Param vars 动态参数 @Param configs 执行模块内容 @Param msg 消息结构体

func (*UserRole) Run

func (s *UserRole) Run() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL