通过适用于JWS的Red Hat Certified Content Collection自动部署JBoss Web服务器

根据我们查询的几个来源,世界上超过33%的web服务器运行Apache Tomcat,而其他来源显示有48%的应用服务器运行Apache Tomcat。这些年来,其中一些实例已经被容器化了,但许多实例仍然运行在传统的Linux虚拟机设置中。

红帽JBoss网络服务器(JWS)结合了web服务器(Apache HTTPD)、servlet引擎(Apache Tomcat)和负载平衡模块(mod_jk和mod_cluster)。Ansible是一个自动化引擎,提供了一套用于大规模管理企业的工具。在本文中,我们将通过使用Ansible在一个红帽企业版Linux 8服务器。

A 以前的文章讨论了这个主题,但是现在您可以将Red Hat认证的内容集合用于JBoss Web服务器,该内容集合自5.7发布.

在本文中,您将通过以下任务自动化JBoss Web服务器部署:

从存储库中检索包含JBoss Web服务器的归档文件,并在系统上安装文件。
配置Red Hat Enterprise Linux操作系统,创建用户、组和所需的安装文件,以将JBoss Web Server作为systemd服务启用。
微调JBoss Web Server服务器的配置,例如将其绑定到适当的接口和端口。
部署web应用程序并启动systemd服务。
执行运行状况检查以确保部署的应用程序可访问。
Ansible完全自动化所有这些操作,因此不需要手动步骤。

准备目标环境
在开始自动化之前,您需要指定您的目标环境。在这种情况下,您将使用Red Hat Enterprise Linux 8和计算机编程语言3.6.您将在Ansible控制节点(执行Ansible的地方)和Ansible目标(正在配置的系统)上使用此设置。

在控制节点上,确认以下要求:

$ cat /etc/redhat-release

Red Hat Enterprise Linux release 8.7 (Ootpa)

$ ansible --version
ansible [core 2.13.3]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.9.13 (main, Nov  9 2022, 13:16:24) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15)]
  jinja version = 3.1.2
  libyaml = True

注意:如果您使用不同的Python版本或目标操作系统,本文中的过程可能无法成功执行。

安装Red Hat Ansible认证内容集合
一旦您设置好Red Hat Enterprise Linux 8并准备好Ansible,您需要安装Red Hat JBoss Web服务器的Red Hat Ansible认证内容集合1.2。Ansible使用该集合在JBoss Web服务器上执行以下任务:

确保安装了所需的系统依赖项(例如解压缩)。
安装Java 语言(一种计算机语言,尤用于创建网站)(如果它丢失并被请求)。
安装web服务器二进制文件并将软件集成到系统中(设置用户、组等)。).
部署配置文件。
启动并启用JBoss Web服务器作为系统d服务。
要安装JBoss Web服务器的认证集合,您必须将Ansible配置为使用Red Hat Automation Hub作为银河服务器。跟随自动化中枢说明检索您的令牌并更新项目目录中的ansible.cfg配置文件。使用从Automation Hub获取的令牌更新该字段:

[galaxy]
server_list = automation_hub, galaxy

[galaxy_server.galaxy]
url=https://galaxy.ansible.com/

[galaxy_server.automation_hub]
url=https://cloud.redhat.com/api/automation-hub/api/galaxy/
auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token

token=<your-token>

安装认证集合:

$ ansible-galaxy collection install redhat.jws
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://console.redhat.com/api/automation-hub/v3/plugin/ansible/content/published/collections/artifacts/redhat-jws-1.2.2.tar.gz to /root/.ansible/tmp/ansible-local-475cum49011/tmptmiuep63/redhat-jws-1.2.2-299_snr4
Installing 'redhat.jws:1.2.2' to '/root/.ansible/collections/ansible_collections/redhat/jws'
Downloading https://console.redhat.com/api/automation-hub/v3/plugin/ansible/content/published/collections/artifacts/redhat-redhat_csp_download-1.2.2.tar.gz to /root/.ansible/tmp/ansible-local-475cum49011/tmptmiuep63/redhat-redhat_csp_download-1.2.2-tb4zjzut
redhat.jws:1.2.2 was installed successfully
Installing 'redhat.redhat_csp_download:1.2.2' to '/root/.ansible/collections/ansible_collections/redhat/redhat_csp_download'
redhat.redhat_csp_download:1.2.2 was installed successfully

Ansible Galaxy获取并下载集合的依赖项。这些依赖关系包括redhat_csp_download集合,它有助于从redhat客户门户或指定的本地或远程位置检索包含JBoss Web Server服务器的归档文件。有关此步骤的更多信息,请参考红帽的官方文档.

安装Red Hat JBoss Web服务器
本节中的配置步骤包括下载JBoss Web服务器、安装Java和启用JBoss Web服务器作为系统服务(systemd)。

下载档案
首先,您需要从Red Hat客户门户。默认情况下,集合希望归档文件位于Ansible项目的根文件夹中。剩下的唯一要求是指定行动手册中使用的JBoss Web服务器的版本(5.7)。基于此信息,集合确定归档文件的路径和全名。

因此,更新的值jws_version在jws-article.yml行动手册中:

---
- name: "Red Hat JBoss Web Server installation and configuration"
  hosts: all
  vars:
    jws_setup: True
    jws_version: 5.7.0
    jws_home: /opt/jws-5.7/tomcat
  …

安装Java
JBoss Web服务器是基于Java的服务器,因此目标系统必须安装Java虚拟机(JVM)。尽管Ansible原语可以本机执行此类任务,但redhat.jws集合也可以完成此任务,前提是jws_java_version变量定义为:

jws_home: /opt/jws-5.7/tomcat
jws_java_version: 1.8.0
…

注意:仅当目标系统的发行版属于Red Hat系列时,此功能才有效。
将JBoss Web服务器作为系统服务启用(systemd)

目标系统上的JBoss Web Server服务器应该作为服务系统运行。集合也可以完成这项任务,如果jws_systemd_enabled变量被定义为真:

jws_java_version: 1.8.0
jws_systemd_enabled: True
jws_service_name: jws

注意:此配置仅在以下情况下有效systemd已安装,并且系统属于红帽家族.

现在您已经定义了部署JBoss Web服务器所需的所有变量,请完成行动手册:

...
jws_service_name: jws
  collections:
    - redhat.jws
  roles:
    - role: jws

运行行动手册
运行行动手册,看看它是否如预期那样工作:

$ ansible-playbook -i inventory jws-article.yml
PLAY [Red Hat JBoss Web Server installation and configuration] *******************************************************************************************************************************************************************************
TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [redhat.jws.jws : Validating arguments against arg spec 'main'] *************************************************************************************************************************************************************************
ok: [localhost]
TASK [redhat.jws.jws : Set default values] ***************************************************************************************************************************************************************************************************
skipping: [localhost]
TASK [redhat.jws.jws : Set default values (jws)] *********************************************************************************************************************************************************************************************
ok: [localhost]
TASK [redhat.jws.jws : Set jws_home to /opt/jws-5.7/tomcat if not already defined] ***********************************************************************************************************************************************************
skipping: [localhost]
TASK [redhat.jws.jws : Check that jws_home has been defined.] ********************************************************************************************************************************************************************************
ok: [localhost] => {
  "changed": false,
  "msg": "All assertions passed"
}
TASK [redhat.jws.jws : Install required dependencies] ****************************************************************************************************************************************************************************************
included: /root/.ansible/collections/ansible_collections/redhat/jws/roles/jws/tasks/fastpackage.yml for localhost => (item=zip)
included: /root/.ansible/collections/ansible_collections/redhat/jws/roles/jws/tasks/fastpackage.yml for localhost => (item=unzip)
TASK [redhat.jws.jws : Check arguments] ******************************************************************************************************************************************************************************************************
ok: [localhost]
…
TASK [redhat.jws.jws : Remove apps] **********************************************************************************************************************************************************************************************************
changed: [localhost] => (item=ROOT)
ok: [localhost] => (item=examples)
TASK [redhat.jws.jws : Create vault configuration (if enabled)] ******************************************************************************************************************************************************************************
skipping: [localhost]
RUNNING HANDLER [redhat.jws.jws : Reload Systemd] ********************************************************************************************************************************************************************************************
ok: [localhost]
RUNNING HANDLER [redhat.jws.jws : Ensure Jboss Web Server runs under systemd] ****************************************************************************************************************************************************************
included: /root/.ansible/collections/ansible_collections/redhat/jws/roles/jws/tasks/systemd/service.yml for localhost
RUNNING HANDLER [redhat.jws.jws : Check arguments] *******************************************************************************************************************************************************************************************
ok: [localhost]
RUNNING HANDLER [redhat.jws.jws : Enable jws.service] ****************************************************************************************************************************************************************************************
changed: [localhost]
RUNNING HANDLER [redhat.jws.jws : Start jws.service] *****************************************************************************************************************************************************************************************
changed: [localhost]
RUNNING HANDLER [redhat.jws.jws : Restart Jboss Web Server service] **************************************************************************************************************************************************************************
changed: [localhost]
PLAY RECAP ***********************************************************************************************************************************************************************************************************************************
localhost               : ok=64   changed=15   unreachable=0 failed=0 skipped=19   rescued=2 ignored=0

如你所见,在执行过程中发生了很多事情。事实上,redhat.jws角色负责整个设置:

部署基本配置
删除未使用的应用程序
启动web服务器
部署Web应用程序
现在JBoss Web服务器正在运行,修改行动手册以促进Web应用程序的部署:

roles:
- role: jws
tasks:
  - name: " Checks that server is running"
    ansible.builtin.uri:
      url: "http://localhost:8080/"
      status_code: 404
      return_content: no

  - name: "Deploy demo webapp"
    ansible.builtin.get_url:
      url: 'https://people.redhat.com/~rpelisse/info-1.0.war'
      dest: "{{ jws_home }}/webapps/info.war"
    notify:
      - "Restart Jboss Web Server service"

该配置使用处理者由redhat.jws集合提供,以确保下载应用程序后JBoss Web服务器会重新启动。

自动化节省了时间并减少了出错的机会
Red Hat Ansible认证内容集合尽可能多地封装了Red Hat JBoss Web服务器部署的复杂性和内部工作方式。在集合的帮助下,您可以专注于您的业务用例,例如部署应用程序,而不是建立底层应用程序服务器。结果是降低了复杂性并加快了价值实现。自动化过程也是可重复的,可以根据需要设置任意多的系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值