ansible Semaphore
Semaphore简介:
ansible Semaphore 是一个用于运行 Ansible 剧本的响应式 Web UI。是用纯go编写的,支持mysql、pg、boltdb数据库(嵌入式键/值数据库).
Semaphore使用场景:
1、构建 、部署和回滚(CI/CD)
2、将playbook分组到项目
3、管理环境、inventories、respositories和access key
4、从浏览器运行playbooks,响应式 UI 允许在移动设备上使用信号量
5、 按照scheduler运行playbooks
6、随时查看playbook运行的详细日志
7、代理其他用户运行playbooks
8、可以获取playbooks运行的通知
semaphore安装
Installation - Semaphore Docs
wget https://github.com/ansible-semaphore/semaphore/releases/\\
download/v2.8.75/semaphore_2.8.75_linux_amd64.rpmsudo yum install semaphore_2.8.75_linux_amd64.rpm#交互式配置,按照交互界面操作就行
semaphore setup#启动服务
semaphore service --config=./config.json
semaphore概念:
Projects:
Projects用于隔离管理活动,semaphore所有的管理活动都发生在Projects的上下文中。Projects相互隔离,可以用于管理不相关的系统、不同的团队、基础设施、环境或者应用程序。
Task Templates:
templates定义了如何去运行ansible playbook,templates允许你指定如下的参数:
-
Playbook repository:
-
Playbook filename
-
Inventory
-
Environment
-
Vault password file
-
Extra CLI arguments
-
and much more
templates 必须是如下的几种类型之一: task、build、 deploy
Tasks:
task是启动playbook的一个实例。
Key Store:
Key Store 用于存储用于访问远程 Repositories、访问远程主机的凭证、sudo 凭证和 Ansible vault 密码。
主要有ssh、password、token、none几种。
Inventory:
Inventory 是一个文件,其中包含 Ansible 将运行的主机列表。Inventory 还存储 playbook 可以使用的变量。Inventory 可以存储在 YAML、JSON 或 TOML 中。
Environment:
Environment 部分是存储清单附加变量的地方,必须以 JSON 格式存储。所有任务模板都需要定义一个环境,即使它是空的。
Repositories:
存储和管理 Ansible 内容(如playbook和role)的地方。