如何在CentOS 7上安装Semaphore Ansible Web UI
在本指南中,我们将在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存储库创建任务模板并执行