如何在CentOS 7上安装Semaphore Ansible Web UI

时间:2020-02-23 14:30:53  来源:igfitidea点击:

在本指南中,我们将在CentOS 7上安装Semaphore Ansible Web UI。Semaphore是基于Web的开源解决方案,使Ansible易于用于各种IT团队。它为我们提供了一个Web界面,从中可以启动和管理Ansible Tasks。

在CentOS 7上安装Semaphore

Semaphore取决于以下工具:MySQL> = 5.6.4/MariaDB> = 5.3ansiblegit> = 2.x

我们将通过确保将这些依赖项安装在CentOS 7服务器上来开始安装。因此,请按照下一部分中的步骤操作,以确保所有设置均已设置。

安装MariaDB数据库服务器

我们有有关在CentOS 7上安装MariaDB的全面指南。下面共享此链接。

在CentOS 7上安装MariaDB 10.x

记下为数据库服务器配置的root密码。

安装git 2.x

使用以下指南在CentOS 7服务器上安装git2.x。

如何在CentOS 7上安装最新版本的Git(Git 2.x)

确认git版本。

$git --version
git version 2.16.5

安装Ansible

在CentOS 7服务器上安装Ansible。

sudo yum -y install epel-release
sudo yum -y install ansible

测试ansible命令是否可用。

$ansible --version
 ansible 2.7.9
   config file = /etc/ansible/ansible.cfg
   configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
   ansible python module location = /usr/lib/python2.7/site-packages/ansible
   executable location = /usr/bin/ansible
   python version = 2.7.5 (default, Oct 30 2016, 23:45:53) [GCC 4.8.5 20140623 (Red Hat 4.8.5-36)]

下载Semaphore

访问"Semaphore发行"页面,并复制操作系统的下载链接。

sudo yum -y install wget
wget https://github.com/ansible-semaphore/semaphore/releases/download/v2.5.1/semaphore_2.5.1_linux_amd64.rpm

安装信号量软件包:

$sudo rpm -Uvh semaphore_2.5.1_linux_amd64.rpm
 Preparing…                          ################################# [100%]
 Updating/installing…
    1:semaphore-2.5.1-1                ################################# [100%]

检查$PATH中是否有信号量二进制文件。

$which semaphore
/usr/bin/semaphore

$semaphore  -version
v2.5.1

配置Semaphore

运行以下命令以在系统中启动Semaphore配置。

# semaphore -setup
 Hello! You will now be guided through a setup to:
 Set up configuration for a MySQL/MariaDB database
 Set up a path for your playbooks (auto-created)
 Run database Migrations
 Set up initial semaphore user & password 
   DB Hostname (default 127.0.0.1:3306): 127.0.0.1:3306
   DB User (default root): root
   DB Password: <root Password>  
   DB Name (default semaphore): semaphore
   Playbook path (default /tmp/semaphore): /opt/semaphore
   Web root URL (optional, example http://localhost:8010/):  http://localhost:8010/
   Enable email alerts (y/n, default n): n
   Enable telegram alerts (y/n, default n): n
   Enable LDAP authentication (y/n, default n): n

确认这些值正确以启动设置。

Is this correct? (yes/no): yes
 Config output directory (default /root): 
 WARN[0037] An input error occured:unexpected newline    
 Running: mkdir -p /root..
 Configuration written to /root/config.json..
 Pinging db.. 
 Running DB Migrations..
 Checking DB migrations
 Creating migrations table
......
Migrations Finished

设定使用者名称

Username: theitroad
Email: theitroad@localhost
WARN[0268] sql: no rows in result set                    level=Warn
 Your name: theitroad
 Password: StrongPassword 
 You are all setup theitroad!
 Re-launch this program pointing to the configuration file
 ./semaphore -config /root/config.json

To run as daemon:
 nohup ./semaphore -config /root/config.json &
You can login with ctheitroad@localhost or theitroad.

我们可以在/root/config.json文件中设置其他配置值。

配置Systemd

现在让我们将信号量Ansible UI配置为由systemd管理。

创建系统服务单元文件。

sudo vi /etc/systemd/system/semaphore.service

添加:

[Unit]
Description=Semaphore Ansible UI
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore -config /etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always

[Install]
WantedBy=multi-user.target

创建Semaphore配置目录:

sudo mkdir /etc/semaphore

将配置文件复制到创建的目录:

sudo ln -s /root/config.json /etc/semaphore/config.json

停止运行Semaphore实例。

sudo pkill semaphore

确认:

ps aux | grep sema

重新加载systemd并启动Semaphore服务。

sudo systemctl daemon-reload
sudo systemctl start semaphore

检查状态以查看是否正在运行:

$systemctl status semaphore 
 ● semaphore.service - Semaphore Ansible UI
    Loaded: loaded (/etc/systemd/system/semaphore.service; disabled; vendor preset: enabled)
    Active: active (running) since Thu 2019-04-04 22:49:24 CEST; 31s ago
      Docs: https://github.com/ansible-semaphore/semaphore
  Main PID: 9779 (semaphore)
    CGroup: /system.slice/semaphore.service
            └─9779 /usr/bin/semaphore -config /etc/semaphore/config.json
 Apr 04 22:49:24 mydebian systemd[1]: Started Semaphore Ansible UI.
 Apr 04 22:49:24 mydebian semaphore[9779]: Using config file: /etc/semaphore/config.json
 Apr 04 22:49:24 mydebian semaphore[9779]: Semaphore v2.5.1
 Apr 04 22:49:24 mydebian semaphore[9779]: Port :3000
 Apr 04 22:49:24 mydebian semaphore[9779]: MySQL theitroad@localhost:3306 semaphore
 Apr 04 22:49:24 mydebian semaphore[9779]: Tmp Path (projects home) /opt/semaphore
 Apr 04 22:49:24 mydebian semaphore[9779]: Checking DB migrations

将服务设置为在启动时启动。

$sudo systemctl enable semaphore
Created symlink /etc/systemd/system/multi-user.target.wants/semaphore.service → /etc/systemd/system/semaphore.service.

端口3000现在应该打开

# ss -tunelp | grep 3000
 tcp    LISTEN     0      128      :::3000  :::*   users:(("semaphore",pid=9779,fd=3)) uid:999 ino:45866 sk:6 v6only:0 <->

设置Nginx代理(可选)

为了能够使用域名访问Semaphore Web界面,请使用以下指南进行设置。

如何为信号量Ansible Web UI配置Nginx代理

访问信号量Web界面

在Web浏览器上,打开端口3000或者服务器名称上的信号量服务器IP。

使用安装期间先前创建的用户名/电子邮件登录。信号灯的Web控制台应在身份验证后显示。

我们已经准备好使用Ansible和功能强大的Web UI管理服务器。

所需的初始步骤是:添加Ansible UnderKey Store使用的SSH密钥/API密钥>创建密钥使用服务器管理库存不足的文件创建库存文件>创建库存创建用户并将其添加到团队中创建环境添加Playbook存储库创建任务模板并执行