Semaphore UI安装和实践
本次实验环境采用centos7.9操作系统,使用rpm包安装方式。
1.配置yum源
--下载centos华为云镜像仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
--2024-12-21 23:34:03-- https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
Resolving mirrors.huaweicloud.com (mirrors.huaweicloud.com)... 123.249.118.101, 1.92.76.132, 120.46.2.67, ...
Connecting to mirrors.huaweicloud.com (mirrors.huaweicloud.com)|123.249.118.101|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’[ <=> ] 1,811 --.-K/s in 0s 2024-12-21 23:34:03 (51.0 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [1811][root@localhost ~]# yum clean all
Loaded plugins: fastestmirror, langpacks
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
[root@localhost ~]# yum grouplist
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Determining fastest mirrors
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 253 kB 00:00:01
(3/4): base/7/x86_64/primary_db | 6.1 MB 00:00:11
(4/4): updates/7/x86_64/primary_db | 27 MB 00:00:48
Available Environment Groups:Minimal InstallCompute NodeInfrastructure ServerFile and Print ServerBasic Web ServerVirtualization HostServer with GUIGNOME DesktopKDE Plasma WorkspacesDevelopment and Creative Workstation
Available Groups:Compatibility LibrariesConsole Internet ToolsDevelopment ToolsGraphical Administration ToolsLegacy UNIX CompatibilityScientific SupportSecurity ToolsSmart Card SupportSystem Administration ToolsSystem Management
Done
[root@localhost ~]#
2.下载安装包
wget https://github.com/semaphoreui/semaphore/releases/\
download/v2.10.43/semaphore_2.10.43_linux_amd64.rpm[root@localhost ~]# wget https://github.com/semaphoreui/semaphore/releases/download/v2.10.43/semaphore_2.10.43_linux_amd64.rpm
--2024-12-21 23:39:32-- https://github.com/semaphoreui/semaphore/releases/download/v2.10.43/semaphore_2.10.43_linux_amd64.rpm
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/23267883/743bec10-b2f8-47b0-a454-4636bffa75fd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241222%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241222T073933Z&X-Amz-Expires=300&X-Amz-Signature=4f0fc14ec7ea5bef79f6397f7d4d6660c1393ce3830bff791e21e80c9728995e&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dsemaphore_2.10.43_linux_amd64.rpm&response-content-type=application%2Foctet-stream [following]
--2024-12-21 23:39:33-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/23267883/743bec10-b2f8-47b0-a454-4636bffa75fd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241222%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241222T073933Z&X-Amz-Expires=300&X-Amz-Signature=4f0fc14ec7ea5bef79f6397f7d4d6660c1393ce3830bff791e21e80c9728995e&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dsemaphore_2.10.43_linux_amd64.rpm&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.111.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11112344 (11M) [application/octet-stream]
Saving to: ‘semaphore_2.10.43_linux_amd64.rpm’100%[===================================================================================================================================================>] 11,112,344 468KB/s in 19s 2024-12-21 23:39:53 (565 KB/s) - ‘semaphore_2.10.43_linux_amd64.rpm’ saved [11112344/11112344][root@localhost ~]# ls -l semaphore_2.10.43_linux_amd64.rpm
-rw-r--r--. 1 root root 11112344 Nov 22 04:22 semaphore_2.10.43_linux_amd64.rpm
3.yum安装
sudo yum install semaphore_2.10.43_linux_amd64.rpm --安装semaphore UI
yum install -y mariadb-server mariadb-client --安装mariadb数据库[root@localhost ~]# yum install -y semaphore_2.10.43_linux_amd64.rpm
Loaded plugins: fastestmirror, langpacks
Examining semaphore_2.10.43_linux_amd64.rpm: semaphore-2.10.43-1.x86_64
Marking semaphore_2.10.43_linux_amd64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package semaphore.x86_64 0:2.10.43-1 will be installed
--> Processing Dependency: git for package: semaphore-2.10.43-1.x86_64
Loading mirror speeds from cached hostfile
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-25.el7_9 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-25.el7_9 for package: git-1.8.3.1-25.el7_9.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-25.el7_9.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-25.el7_9.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-25.el7_9.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-25.el7_9 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=============================================================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================================================
Installing:semaphore x86_64 2.10.43-1 /semaphore_2.10.43_linux_amd64 27 M
Installing for dependencies:git x86_64 1.8.3.1-25.el7_9 updates 4.4 Mperl-Error noarch 1:0.17020-2.el7 base 32 kperl-Git noarch 1.8.3.1-25.el7_9 updates 56 kperl-TermReadKey x86_64 2.30-20.el7 base 31 kTransaction Summary
=============================================================================================================================================================================================
Install 1 Package (+4 Dependent packages)Total size: 31 M
Total download size: 4.5 M
Installed size: 49 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/perl-Error-0.17020-2.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY ] 0.0 B/s | 0 B --:--:-- ETA
Public key for perl-Error-0.17020-2.el7.noarch.rpm is not installed
(1/4): perl-Error-0.17020-2.el7.noarch.rpm | 32 kB 00:00:00
(2/4): perl-TermReadKey-2.30-20.el7.x86_64.rpm | 31 kB 00:00:00
Public key for perl-Git-1.8.3.1-25.el7_9.noarch.rpm is not installed
(3/4): perl-Git-1.8.3.1-25.el7_9.noarch.rpm | 56 kB 00:00:00
(4/4): git-1.8.3.1-25.el7_9.x86_64.rpm | 4.4 MB 00:00:08
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 539 kB/s | 4.5 MB 00:00:08
Retrieving key from https://mirrors.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5From : https://mirrors.huaweicloud.com/centos/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : 1:perl-Error-0.17020-2.el7.noarch 1/5 Installing : perl-TermReadKey-2.30-20.el7.x86_64 2/5 Installing : git-1.8.3.1-25.el7_9.x86_64 3/5 Installing : perl-Git-1.8.3.1-25.el7_9.noarch 4/5 Verifying : semaphore-2.10.43-1.x86_64 1/5 Verifying : 1:perl-Error-0.17020-2.el7.noarch 2/5 Verifying : git-1.8.3.1-25.el7_9.x86_64 3/5 Verifying : perl-Git-1.8.3.1-25.el7_9.noarch 4/5 Verifying : perl-TermReadKey-2.30-20.el7.x86_64 5/5 Installed:semaphore.x86_64 0:2.10.43-1 Dependency Installed:git.x86_64 0:1.8.3.1-25.el7_9 perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-25.el7_9 perl-TermReadKey.x86_64 0:2.30-20.el7 Complete!
[root@localhost ~]# [root@localhost ~]# yum install -y mariadb-server mariadb-client
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No package mariadb-client available.
Resolving Dependencies
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.68-1.el7 will be installed
--> Processing Dependency: mariadb(x86-64) = 1:5.5.68-1.el7 for package: 1:mariadb-server-5.5.68-1.el7.x86_64
--> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.68-1.el7.x86_64
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.68-1.el7.x86_64
--> Processing Dependency: perl(Data::Dumper) for package: 1:mariadb-server-5.5.68-1.el7.x86_64
--> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.68-1.el7.x86_64
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.68-1.el7 will be installed
---> Package perl-DBD-MySQL.x86_64 0:4.023-6.el7 will be installed
---> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed
--> Running transaction check
---> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Running transaction check
---> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed
--> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
--> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
---> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
--> Running transaction check
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed
---> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=============================================================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================================================
Installing:mariadb-server x86_64 1:5.5.68-1.el7 base 11 M
Installing for dependencies:mariadb x86_64 1:5.5.68-1.el7 base 8.8 Mperl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 kperl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 kperl-DBD-MySQL x86_64 4.023-6.el7 base 140 kperl-DBI x86_64 1.627-4.el7 base 802 kperl-Data-Dumper x86_64 2.145-3.el7 base 47 kperl-IO-Compress noarch 2.061-2.el7 base 260 kperl-Net-Daemon noarch 0.48-5.el7 base 51 kperl-PlRPC noarch 0.2020-14.el7 base 36 kTransaction Summary
=============================================================================================================================================================================================
Install 1 Package (+9 Dependent packages)Total download size: 21 M
Installed size: 110 M
Downloading packages:
(1/10): mariadb-server-5.5.68-1.el7.x86_64.rpm | 11 MB 00:00:34
(2/10): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:00
(3/10): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:00
(4/10): mariadb-5.5.68-1.el7.x86_64.rpm | 8.8 MB 00:00:35
(5/10): perl-DBD-MySQL-4.023-6.el7.x86_64.rpm | 140 kB 00:00:00
(6/10): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:00
(7/10): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:01
(8/10): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:00
(9/10): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00
(10/10): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:02
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 582 kB/s | 21 MB 00:00:37
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : perl-Data-Dumper-2.145-3.el7.x86_64 1/10 Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 2/10 Installing : 1:mariadb-5.5.68-1.el7.x86_64 3/10 Installing : perl-Net-Daemon-0.48-5.el7.noarch 4/10 Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 5/10 Installing : perl-IO-Compress-2.061-2.el7.noarch 6/10 Installing : perl-PlRPC-0.2020-14.el7.noarch 7/10 Installing : perl-DBI-1.627-4.el7.x86_64 8/10 Installing : perl-DBD-MySQL-4.023-6.el7.x86_64 9/10 Installing : 1:mariadb-server-5.5.68-1.el7.x86_64 10/10 Verifying : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 1/10 Verifying : perl-Net-Daemon-0.48-5.el7.noarch 2/10 Verifying : perl-Data-Dumper-2.145-3.el7.x86_64 3/10 Verifying : 1:mariadb-server-5.5.68-1.el7.x86_64 4/10 Verifying : perl-DBD-MySQL-4.023-6.el7.x86_64 5/10 Verifying : 1:mariadb-5.5.68-1.el7.x86_64 6/10 Verifying : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 7/10 Verifying : perl-DBI-1.627-4.el7.x86_64 8/10 Verifying : perl-IO-Compress-2.061-2.el7.noarch 9/10 Verifying : perl-PlRPC-0.2020-14.el7.noarch 10/10 Installed:mariadb-server.x86_64 1:5.5.68-1.el7 Dependency Installed:mariadb.x86_64 1:5.5.68-1.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 Complete!
[root@localhost ~]# [root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@localhost ~]# ps -ef|grep mariadb
mysql 9642 9477 0 23:48 ? 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 9700 9091 0 23:49 pts/0 00:00:00 grep --color=auto mariadb
[root@localhost ~]#
4.semaphore setup安装
# 直接用root用户吧,这里要自定义密码,把密码记住;
mysql -u root -p# 创建个单独的db和用户给semaphore用,其中:
# 用户名ansibleui_user
# 密码ansibleui_pass!
# 库名ansibleui_dbCREATE USER 'ansibleui_user'@'localhost' IDENTIFIED BY 'ansibleui_pass!';
CREATE DATABASE ansibleui_db;
GRANT ALL PRIVILEGES ON ansibleui_db.* TO 'ansibleui_user'@'localhost';
FLUSH PRIVILEGES;
quit# 制作semaphore的config.json配置文件
semaphore setup
5.启动semaphore
[root@localhost ~]# nohup semaphore server --config /data/config.json &
[1] 9841
[root@localhost ~]# nohup: ignoring input and appending output to ‘nohup.out’[root@localhost ~]#
[root@localhost ~]# ps -ef|grep sema
root 9841 9091 0 23:59 pts/0 00:00:00 semaphore server --config /data/config.json
root 9849 9091 0 23:59 pts/0 00:00:00 grep --color=auto sema
[root@localhost ~]#
6.通过URL访问semaphore
yum
安装参考至如下链接:
semaphoreui安装
https://docs.semaphoreui.com/administration-guide/installation/#snap
ansible图形化界面开源 ansible可视化界面
转载
我是数据分析师2024-03-01 11:20:21
文章标签ansible图形化界面开源自动化ansible运维pythonKubernetes文章分类运维阅读数250
注册亚马逊云科技账号,抽罗技键鼠套装、绿联充电宝、50元京东卡,100%中奖噢
https://blog.51cto.com/51ctoblog/12839878
用户手册
1、Projects
项目是分隔管理活动的地方。所有Semaphore活动都发生在项目的上下文中。项目彼此独立,因此您可以使用它们在单个信号量安装中组织不相关的系统。这对于管理不同的团队、基础设施、环境或应用程序非常有用。

2、Task Templates
模板定义如何运行Ansible Playbook。该模板允许您指定以下参数
- Playbook repository 脚本库
- Playbook filename 脚本文件名
- Inventory 参考第五章
- Environment 参考第六章
- Vault password file 库密码文件
- Extra CLI arguments 其他的CLI参数

任务模板有三种类型:Task , Build ,Deploy
Task
只是用指定的参数运行指定的脚本
Build
这种类型的模板应该用于创建artifacts。artifacts的起始版本可以在模板参数中指定。每次运行都会增加artifacts版本。

semaphore不支持开箱即用的artifacts,它只提供任务版本控制。应该自己实现artifacts创建。阅读build和deploy这章,了解如何去做
Deploy
这种类型的模板应该用于将工件部署到目标服务器。每个deploy模板都与build模板相关联。

这允许您将工件的特定版本部署到服务器上
3、Tasks
Tasks是启动Ansible脚本的实例。通过单击所需模板的Run/Build/Deploy按钮,可以从task Template创建task。

类型为Deploy的任务允许您指定与该任务关联的build版本。默认情况下,它是最新的build版本。

当任务运行或完成时,可以看到任务的状态和运行日志。

4、Key Store
semaphore中的Key store 用于存储访问远程存储库、访问远程主机、sudo凭据和Ansible保险库密码的凭据。
在设置其他资源(如inventory、repository和任务模板)之前配置好所有必需的accress keys是很有帮助的,这样就不必在以后编辑它们。

Key有四种类型
SSH
SSH密钥用于访问远程服务器和远程存储库。此时,semaphore支持使用受密码保护的SSH密钥。
如果您需要帮助快速生成密钥并将其放置到您的主机上,这里有一个 快速指南。
对于使用SSH身份验证的Git Repository,试图克隆的Git Repository需要将您的公钥与私钥关联起来。
下面是一些常见Git仓库文档的链接
GitHub
GitLab
Bitbucket
Login With Password
Login With Password是一个用户名和密码/访问令牌组合,可用于执行以下操作:
- 向远程主机进行身份验证(尽管这比使用SSH密钥更不安全)
- 远程主机上的Sudo凭据
- 通过HTTPS对远程Git Repos进行身份验证(尽管SSH更安全)
- 解锁Ansible金库
Personal Access Token
None
这被用作像GitLab上的开源repos那样不需要身份验证的repo的填充符。
5、inventory
Inventory是一个文件,它存储了Ansible运行的主机列表。Inventory还存储脚本可以使用的变量。一个Inventory可以存储在YAML、JSON和TOML上。
更多关于库存的信息可以在Ansible文档中找到。
Ansible Semaphore既可以从该信号量用户具有读访问权的服务器上的文件中读取Inventory,也可以通过web GUI编辑静态Inventory。每个目录至少有一个与之相关的凭证。Ansible用来登录主机获取Inventory的用户凭证和sudo凭证,sudo凭证用于升级主机上的特权。需要有一个用户凭据,这个用户凭据要么是一个带登录的用户名,要么是在Key Store中配置的SSH,以创建Inventory。有关凭证的信息可以在本站点的密钥存储区部分中找到。

创建 inventory
- 单击Key Store选项卡,并确认您有一个login_password或ssh类型的密钥
- 单击Inventory选项卡,然后单击New Inventory
- 命名库存并从下拉菜单中选择正确的用户凭据。如果需要,请选择正确的sudo凭据
- 选择Inventory类型
- 如果选择file,请使用文件的绝对路径
- 如果您选择静态,请将您的Inventory粘贴或键入到表单中
- 单击Create。
更新inventory
- 单击Inventory选项卡
- 单击要编辑的目录旁边的铅笔图标
- 让你改变
- 点击保存
删除inventory

在你移除一个库存之前,你必须移除与它相关的所有资源。如果您不确定某个环境中正在使用哪些资源,请执行下面的步骤1和步骤2,它将显示哪些资源正在使用它,并提供指向这些资源的链接。
- 单击Inventory选项卡
- 点击Inventory旁边的垃圾桶图标
- 如果确定要删除Inventory,则单击Yes
6、Environment
Semaphore的Environment部分是存储库存的附加变量的地方,必须以JSON格式存储。所有任务模板都需要定义一个环境,即使它是空的。

创建环境
- 单击Environment选项卡
- 单击New Environment按钮
- 命名环境并键入或粘贴有效的JSON变量。如果您只需要{}中的空Environment类型
更新环境
- 单击Environment选项卡
- 点击铅笔图标
- 进行更改并单击保存
删除环境
在删除环境之前,必须删除与之关联的所有资源。如果您不确定某个环境中正在使用哪些资源,请执行下面的步骤1和步骤2,它将显示哪些资源正在使用它,并提供指向这些资源的链接。
- 点击环境
- 单击环境旁边的垃圾桶图标
- 如果确定要删除环境,则单击Yes
7、Repositories
Repository是存储和管理Ansible内容的地方,比如脚本和roles。
semaphore可以理解以下仓库:本地Git仓库(Git://)、本地文件夹(file://)或通过HTTPS (https://)或SSH(SSH://)访问的远程Git仓库。
所有任务模板都需要一个存储库才能运行
Authentication
如果使用需要身份验证的远程存储库,则需要在“信号量”的“密钥存储”部分配置密钥。
对于使用SSH的远程存储库,您需要在密钥存储库中使用SSH密钥。
对于没有身份验证的远程存储库,可以创建类型为None的Key。

创建一个仓库
- 确保已经为要在密钥存储区中添加的Repository配置了密钥
- 转到Semaphore的Repository部分,单击右上角的New Repository按钮
- 配置存储库
- 存储库名称
- 添加URL。URL必须以以下格式开头:
- https://用于通过HTTPS访问的远程Git仓库
- ssh://用于通过ssh访问的远程Git库
- file://表示文件系统本地文件夹
- git://用于本地git存储库
- 设置Repository的分支,如果您不确定它应该是什么,它可能是master或main
- 选择在设置此存储库之前配置的访问密钥
- 配置完成后单击Save
编辑现有仓库
- 转到信号量的存储库部分
- 单击要更改的Repository旁边的铅笔图标,然后您将看到创建Repository时的相同选项
删除一个仓库
确保要删除的存储库没有被任何任务模板使用。在任何任务模板中使用的存储库不能被删除
转到信号量的存储库部分
- 单击要删除的存储库上的垃圾桶图标
- 如果确定要删除此Repository,则单击确认弹出框上的Yes。
Ansible Semaphore 使用方法

重新开始的码农
编程爱好者
关注他
1、创建密钥库
这里面创建的密钥库,要将私钥写入到。类型选择“SSH秘钥”,私钥处写入私钥:
cat .ssh/id_rsa
将上面的输出输入到“私钥”
2、在Ansible Semaphore上创建Git仓库
创建一个Ubuntu上的远程仓库,用于上传yml文件,如果多人使用脚本的话必须这么操作
mkdir my_ansible_playbook.git
cd my_ansible_playbook.git/
git init --bare
git config --bool core.bare true
创建好仓库后,我们如何下载这个仓库呢?
git clone user@10.11.39.48:/home/user/my_ansible_playbook.git
其中:
- user: 登录到10.11.39.48的用户名
- 10.11.39.48:主机IP
- /home/user/my_ansible_playbook.git:详细路径
之后可以在编写者这里直接下载代码,并填写自己的yml文件。一定要推送到master分支~
3、创建存储库
左侧点击“存储库”,右上角“新增存储库”。
- 名称:描述创建的信息
- URL或路径:其中可以是本地的路径(/home/user/ansible),或者是git路径(user@10.11.39.48:/home/user/my_ansible_playbook.git)。一定记住这里的git填写方法
- 分支:无论是URL或者本地路径都可以写“master”
- 访问凭据:这里选择上面创建的密钥库,这里是下拉框形式,如果创建可以选择到
4、创建环境
环境虽然可以不传入数值,但是必须有这个对象可以选择(因为是必填项)
- 环境名称:描述信息
- 扩展变量:可以是空的{},但是必须一个
- 环境变量:可以是空的{},和上面的扩展变量写一个就行
5、主机配置
主机配置相当于ansible中的hosts,这里面可以直接指定文件路径,也可以写成static类型存储到数据库中
- 名称:描述信息
- 用户凭据:选择1中创建的凭据
- sudo凭据:可选
- 类型:可以选择三种(File,Static,Static YAML)
- 主机配置文件路径:只有选择“类型”是“File”是才会出现,可以填入(/home/user/ansible/hosts)
- 编辑主机配置:只有选择“类型”是“Static”或者“Static YAML”才会出现。
- Static:数据格式要和host一样信息
静态主机配置示例:
[website]
172.18.8.40
172.18.8.41
-
- Static YAML:数据格式是YAML格式
静态 YAML 格式主机配置示例:
all:children:website:hosts:172.18.8.40:172.18.8.41:
6、任务模板
任务模板要最后创建,因为要依赖前面的数据
新增模板中有三个可选:我这里使用了“任务”。其他几个会在后期的使用中进行更新。
- 名称:模板名称
- 说明:模板说明(非必填)
- Playbook文件名称:就是在你的仓库路径下的文件名称,如果你的“.yml”文件在yml文件夹下,那么这里要写成“./yml/check_pc_status.yml”才可以
- 主机配置:就是5中创建的,通过下拉框选择
- 存储库:就是3中创建的,选择GIT仓库
- 环境:在4中创建的,必须他选择(可以是空的)
- Vault密码:暂时不知道如何配置的
- 列出变量:这里可以点击添加环境变量,这个变量是你在执行playbook是的 -e "user_name=xxx"中的user_name设置
- 名称:你的变量名称(user_name)
- 标题:在执行脚本时弹出来的中文提示
- 说明:可以添加寿命
- 类型:Integer或者
- 必须:勾选是否是必要的
- 其他还有几个参数
相关文章:
Semaphore UI安装和实践
本次实验环境采用centos7.9操作系统,使用rpm包安装方式。 1.配置yum源 --下载centos华为云镜像仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo[rootlocalhost ~]# wget -O /etc/yum.repos.…...
Redis篇--常见问题篇7--缓存一致性2(分布式事务框架Seata)
1、概述 在传统的单体应用中,事务管理相对简单,通常使用数据库的本地事务(如MySQL的BEGIN和COMMIT)来保证数据的一致性。然而,在微服务架构中,由于每个服务都有自己的数据库,跨服务的事务管理变…...
Docker Compose 安装 Harbor
我使用的系统是rocky Linux 9 1. 准备环境 确保你的系统已经安装了以下工具: DockerDocker ComposeOpenSSL(用于生成证书)#如果不需要通过https连接的可以不设置 1.1 安装 Docker 如果尚未安装 Docker,可以参考以下命令安装&…...
使用docker compose安装gitlab
使用docker compose安装gitlab GitLab简介设置GITLAB_HOME路径创建docker挂载目录获取可用的GitLab版本编写docker-compose.yml文件启动docker基础配置GITLAB_OMNIBUS_CONFIG修改配置 中文设置数据库配置系统邮箱配置 GitLab简介 GitLab是一个基于Git的开源项目,…...
大模型日报 2024-12-18
大模型日报 2024-12-18 大模型资讯 标题: 3B模型长思考后击败70B!HuggingFace逆向出o1背后技术细节并开源 摘要:这篇文章探讨了小模型在经过长时间思考后,如何在性能上超越更大规模模型的现象。HuggingFace通过逆向工程和开源技术…...
Linux安装mysql5.7
一、下载mysql5.7 首先我们需要去下载linux版本的mysql-5.7.24的安装包。 1.可以去官方网站链接: https://downloads.mysql.com/archives/community/ ,下载mysql-5.7.24-linux-glibc2.12-x86_64.tar压缩包。 2.在线下载,使用wget命令,直接从官网下载…...
【容器】k8s学习笔记原理详解(十万字超详细)
Pod详解 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个: 可以以它为依据&am…...
.NET重点
B/S C/S B/S: 浏览器端:JavaScript,HTML,CSS 服务器端:ASP(.NET)PHP/JSP 优势:维护方便,易于升级和扩展 劣势:服务器负担沉重 C/S java/.NET/VC系列 …...
SMMU软件指南SMMU编程之虚拟机结构和缓存
安全之安全(security)博客目录导读 目录 一、虚拟机结构(VMS) 二、缓存 一、虚拟机结构(VMS) 虚拟机结构(VMS)是SMMU中的概念,是一个由STE.VMSPtr字段指向的结构,包含每个虚拟机的配置设置。在相同安全状态下具有相同虚拟机ID(VMID)的多个STE必须指向相同的VMS。…...
Go 语言并发实战:利用协程处理多个接口进行数据融合
高效地处理多个数据源并将其整合为有意义的结果是开发中一项重要的任务。Go 语言,以其强大的并发特性,为我们提供了优雅而高效的解决方案。那么我们探讨一下如何利用 Go 语言的协程,同时调用多个接口获取数据,并将这些数据无缝地合…...
Redis Hash Tag 知识详解
一、Redis Hash Tag概述 Redis Hash Tag是Redis集群环境里用于控制数据分片的关键机制。在Redis集群中,数据依据键的哈希值来确定分片存储位置。Hash Tag能让用户指定键的特定部分作为哈希计算核心部分,进而使相关键存储于同一节点,这对处理…...
在 Ubuntu 上安装 Muduo 网络库的详细指南
在 Ubuntu 上安装 Muduo 网络库的详细指南 首先一份好的安装教程是非常重要的 C muduo网络库知识分享01 - Linux平台下muduo网络库源码编译安装-CSDN博客 像这篇文章就和shit一样,安装到2%一定会卡住,如果你不幸用了这个那真是遭老罪了 环境…...
Golang Gin Redis+Mysql 同步查询更新删除操作(我的小GO笔记)
我的需求是在处理几百上千万数据时避免缓存穿透以及缓存击穿情况出现,并且确保数据库和redis同步,为了方便我查询数据操作加了一些条件精准查询和模糊查询以及全字段模糊查询、分页、排序一些小玩意,redis存储是hash表key值也就是数据ID&…...
nodejs搭配express网站开发后端接口设计需要注意事项
nodejs搭配express网站开发后端接口设计需要注意事项!为了回避一些常见的误区,今天和大家汇总一下,最近我遇到的一些错误信息,虽然都是小问题,但是还是需要分享一下,以免大家再次犯错。 1:第一个…...
mysql 基于chunk机制是如何支持运行期间,动态调整buffer pool大小的
mysql 基于chunk机制是如何支持运行期间,动态调整buffer pool大小的 MySQL 的 InnoDB 存储引擎确实支持在运行期间动态调整缓冲池(buffer pool)的大小,但其机制与自定义缓存系统有所不同。InnoDB 通过内部优化和配置参数来实现这…...
智能客户服务:AI与大数据的革新力量
在当今信息技术日新月异的时代,大数据和人工智能(AI)正逐步成为推动各行各业变革的重要力量。尤其是在客户服务领域,大数据与AI的深度融合正引领着客服系统的全面革新。 一、大数据与AI在智能客服系统中的应用 智能客服系统是一种…...
Python日常使用的自动化脚本
Python日常使用的自动化脚本 LinkDescriptionsort_files根据文件扩展名将目录中的文件组织到子目录中remove_empty_folders删除所有空的文件夹rename_files批量重命名目录中的文件scrape_data从网站上抓取数据download_images从网站批量下载图片count_words统计指定文件中的单…...
代理模式(JDK,CGLIB动态代理,AOP切面编程)
代理模式是一种结构型设计模式,它通过一个代理对象作为中间层来控制对目标对象的访问,从而增强或扩展目标对象的功能,同时保持客户端对目标对象的使用方式一致。 代理模式在Java中的应用,例如 1.统一异常处理 2.Mybatis使用代理 3.Spring…...
【Leetcode 热题 100】236. 二叉树的最近公共祖先
问题背景 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 最近公共祖先的定义为:对于有根树 T T T 的两个节点 p p p、 q q q,最近公共祖先表示为一个节点 x x x,满足 x x x 是 p p p、 q q q 的祖先且 x x x 的深度尽可能大…...
Go框架比较:goframe、beego、iris和gin
由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web"框架"为主。这里稍微打了个引号,因为大部分"框架"从设计和功能定位上来讲,充其量都只能算是一个组件&…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...
更新 Docker 容器中的某一个文件
🔄 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法,适用于不同场景。 ✅ 方法一:使用 docker cp 拷贝文件到容器中(最简单) 🧰 命令格式: docker cp <…...
