注意:
- 此教程位于 Oracle 提供的免费实验室环境中。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
在 Oracle Linux 上安装 Oracle Linux Automation Manager
简介
Oracle Linux Automation Manager 是一个任务引擎和基于 Web 的图形用户界面 (graphical user interface,GUI),用于针对远程主机的清单调度和运行 Oracle Linux Automation Engine 手册。这套工具可帮助管理员轻松管理 IT 基础设施,以已知且可预测的方式完成重复性任务,从而避免常见的人工管理问题。
Oracle Linux Automation Engine 是一个工具,用于使用基于代码的基础设施(即代码 (IaC) YAML 定义文件(称为剧本)来管理和运行管理任务。这些手册包括说明性任务,例如部署软件、配置系统以及编排升级和更新。
目标
在本教程中,您将学习如何:
- 启用 Oracle Linux DNF 系统信息库
- 设置防火墙规则
- 下载、安装和配置单主机 Oracle Linux Automation Manager
先决条件
- 安装有 Oracle Linux 的系统。
部署 Oracle Linux
注:如果在您自己的租户中运行,请阅读 linux-virt-labs
GitHub 项目 README.md ,并在部署实验室环境之前完成先决条件。
-
在 Luna 桌面上打开一个终端。
-
克隆
linux-virt-labs
GitHub 项目。git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
转到工作目录。
cd linux-virt-labs/olam
-
安装所需的集合。
ansible-galaxy collection install -r requirements.yml
-
更新 Oracle Linux 实例配置。
cat << EOF | tee instances.yml > /dev/null compute_instances: 1: instance_name: "olam-node" type: "control" olam_type: none EOF
-
创建清单文件。
cat << EOF | tee hosts > /dev/null localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6 EOF
-
部署实验室环境。
ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
对于 localhost,免费实验室环境需要额外的变量
ansible_python_interpreter
,因为它为 Oracle Cloud Infrastructure SDK for Python 安装 RPM 软件包。根据您的 Oracle Linux 版本,此软件包的安装位置位于系统的默认 Python 模块下面。使用清单变量可避免影响在本地主机以外的主机上运行的播放。默认部署配置使用 AMD CPU。您可以通过在命令行上传递新的配置变量定义来更改实例的配置。
例如:
-e instance_shape="VM.Standard3.Flex"
同样,Oracle Linux 映像的缺省版本使用在 `default_vars.yml file' 中定义的变量
os_version
。可以通过在命令行上传递 Oracle Linux 主版本来修改此值。例如:
-e os_version="9"
重要提示:等待手册成功运行并到达暂停任务。在手册的这一阶段,Oracle Linux 安装已完成,实例已准备就绪。请注意上一个播放,其中输出其部署的节点的公共和专用 IP 地址。
启用 Oracle Linux DNF 系统信息库并设置防火墙规则
在安装 Oracle Linux Automation Manager 之前启用所需的 yum 系统信息库和防火墙规则。
-
打开终端并通过 ssh 连接到 olam-node 节点。
ssh oracle@<ip_address_of_instance>
-
安装 Oracle Linux Automation Manager 系统信息库。
Oracle Linux 8:
sudo dnf -y install oraclelinux-automation-manager-release-el8
Oracle Linux 9:
sudo dnf -y install oraclelinux-automation-manager-release-el9
此命令将最新的 Oracle Linux Automation Manager 系统信息库作为安装产品软件包的默认值。
-
将 HTTP/HTTPS 服务添加到防火墙规则。
sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload
安装本地 PostgreSQL 数据库
-
启用模块流。
sudo dnf module reset postgresql sudo dnf -y module enable postgresql:16
-
安装数据库。
sudo dnf -y install postgresql-server
-
初始化数据库。
sudo postgresql-setup --initdb
-
将口令存储机制切换到 scram-sha-256 。
sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
-
启用和启动数据库。
sudo systemctl enable --now postgresql
-
创建数据库用户账户。
重要提示:对于此免费实验室环境,请在提示符下使用密码
password
。此密码不安全,在此环境中我们仅将此密码用于演示。sudo su - postgres -c "createuser -S -P awx"
-
创建数据库。
sudo su - postgres -c "createdb -O awx awx"
-
更新基于主机的验证文件。
echo "host all all 0.0.0.0/0 scram-sha-256" | sudo tee -a /var/lib/pgsql/data/pg_hba.conf > /dev/null
-
更新数据库监听程序的 IP 地址。
sudo sed -i "/^#port = 5432/i listen_addresses = '"$(hostname -i)"'" /var/lib/pgsql/data/postgresql.conf
-
更新数据库内存要求。
这些计算利用系统总内存(以 MB 为单位)并替换 PostgreSQL 配置文件中的缺省值。
export TOTAL_MEMORY="$(free --mega | awk 'FNR == 2 {print $2}')" sudo sed -i 's/max_connections = 100/max_connections = 1024/g' /var/lib/pgsql/data/postgresql.conf sudo sed -i "/^shared_buffers =/c\shared_buffers = $( echo "($TOTAL_MEMORY*0.3)/1" | bc )" /var/lib/pgsql/data/postgresql.conf sudo sed -i "/^#work_mem =/c\work_mem = $( echo "($TOTAL_MEMORY*0.03)/1" | bc )" /var/lib/pgsql/data/postgresql.conf sudo sed -i "/^#maintenance_work_mem =/c\maintenance_work_mem = $( echo "($TOTAL_MEMORY*0.04)/1" | bc )MB" /var/lib/pgsql/data/postgresql.conf
-
重新启动数据库。
sudo systemctl restart postgresql
安装和配置 Oracle Linux Automation Manager
-
安装 Oracle Linux Automation Manager 软件包和任何依赖项。
sudo dnf -y install ol-automation-manager
-
更新 Redis 配置文件。
Oracle Linux 8:
sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis.conf
Oracle Linux 9:
sudo sed -i '/^# unixsocketperm/a unixsocket /var/run/redis/redis.sock\nunixsocketperm 775' /etc/redis/redis.conf
-
将 CLUSTER_HOST_ID 添加到定制设置文件。
cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null CLUSTER_HOST_ID = '$(hostname -i)' EOF
注:对于启用了 IPv6 的系统,使用
$(hostname -i)
不起作用,因为输出中存在空格。请改用系统的主机名(可以使用$(hostname -f)
或其他一些不带空格的字符串)。 -
更新对定制设置文件的权限。
sudo chown awx.awx /etc/tower/conf.d/olam.py sudo chmod 0640 /etc/tower/conf.d/olam.py
-
将数据库设置添加到定制配置文件。
cat << EOF | sudo tee -a /etc/tower/conf.d/olam.py > /dev/null DATABASES = { 'default': { 'ATOMIC_REQUESTS': True, 'ENGINE': 'awx.main.db.profiled_pg', 'NAME': 'awx', 'USER': 'awx', 'PASSWORD': 'password', 'HOST': '$(hostname -i)', 'PORT': '5432', } } EOF
-
启用 Lingering。
Oracle Linux 9:
sudo loginctl enable-linger awx
这将在无头系统上运行时解析此消息:
WARN[0000] cgroupv2 管理器已设置为 systemd,但是没有 systemd 用户会话可用 WARN[0000] 对于使用 systemd,您可能需要使用用户会话 WARN[0000] 登录。或者,您可以启用以下项的持久性:
loginctl enable-linger 986
(可能为 root)WARN[0000] 回退到– cgroup-manager=cgroupfs
WARN[0000] cgroupv2 管理器已设置为 systemd,但没有 systemd 用户会话可用 WARN[0000] 对于使用 systemd,您可能需要使用用户会话 WARN[0000] 登录;或者,您可以启用以下项的持久性:loginctl enable-linger 986
(可能为 root)WARN[0000] 回退到– cgroup-manager=cgroupfs -
提取 Oracle Linux Automation Manager 容器映像。
Oracle Linux 8:
sudo su -l awx -s /bin/bash
podman system migrate
podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol8
Oracle Linux 9:
sudo su -l awx -s /bin/bash
podman system migrate
podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol9
-
创建 Oracle Linux Automation Manager 方案和管理用户帐户。
awx-manage migrate awx-manage createsuperuser --username admin --email admin@example.com
注:在上一个示例中,
admin@example.com
是管理员用户的电子邮件地址示例。 -
输入并确认管理员用户的密码。
-
退出 awx 用户 shell。
exit
-
为 NGINX 生成 SSL 证书。
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/tower/tower.key -out /etc/tower/tower.crt
输入请求的信息或仅按
ENTER
键。 -
替换默认 NGINX 配置。
cat << EOF | sudo tee /etc/nginx/nginx.conf > /dev/null user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; } EOF
-
更新受体配置文件。
cat << EOF | sudo tee /etc/receptor/receptor.conf > /dev/null --- - node: id: $(hostname -i) - log-level: debug - tcp-listener: port: 27199 - control-service: service: control filename: /var/run/receptor/receptor.sock - work-command: worktype: local command: /var/lib/ol-automation-manager/venv/awx/bin/ansible-runner params: worker allowruntimeparams: true verifysignature: false EOF
-
预配实例并注册执行环境。
sudo su -l awx -s /bin/bash
awx-manage provision_instance --hostname=$(hostname -i) --node_type=hybrid
awx-manage register_default_execution_environments
awx-manage register_queue --queuename=default --hostnames=$(hostname -i)
awx-manage register_queue --queuename=controlplane --hostnames=$(hostname -i)
awx-manage create_preload_data
exit
-
启动服务。
sudo systemctl enable --now ol-automation-manager.service
-
断开与服务器的连接。
exit
验证安装
-
使用同一终端窗口配置 SSH 隧道。
ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
注:在上一个示例中,
<ip_address_of_instance>
是运行 Oracle Linux Automation Manager 的系统的主机名或 IP 地址。如果使用主机名,则主机必须可解析。 -
打开 Web 浏览器并输入 URL。
https://localhost:8444
注:根据使用的浏览器批准安全警告。对于 Chrome,单击
Advanced
按钮,然后单击Proceed to localhost (unsafe)
链接。 -
使用 USERNAME
admin
和设置期间创建的密码登录到 Oracle Linux Automation Manager。
后续步骤
安装 Oracle Linux Automation Manager 后,您可以开始浏览 Web 用户界面和各种产品功能,以帮助实现基础设施自动化。查看我们在 Oracle Linux 培训站上的其他培训,以扩展您的知识并获取创意。
相关链接
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Install Oracle Linux Automation Manager on Oracle Linux
F52960-05
Copyright ©2021, Oracle and/or its affiliates.