rocky9.x版本系统初始化配置

rocky9.x版本系统初始化配置
更换yum源

sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/rocky*.repo

dnf makecache

vim init.sh

#!bin/sh
LOGINFO=init_install.log

function info(){
	echo "已为您退出!若想继续请重新执行命令:'bash $0' 继续操作! "
	return 2
}


function setNetwork(){
	netfile=/etc/NetworkManager/system-connections/ens160.nmconnection
	#找出系统发行版是什么
	RELEASE=`cat /etc/redhat-release|awk '{print $1,$4}'|sed 's/[ .]//p' -n`
	RELEASE_1=`echo ${RELEASE/.*/}`
	#如果发行版为Rocky9版本,则开始设置ip
	if [ "${RELEASE_1}" == "Rocky9" ]; then
		read -p "确定更改网络配置信息么,是:y  按其他任意键退出: " yn
		if [ "${yn}" == "y" ]; then
			read -p "请输入你要设置的ip及掩码地址‘格式如 192.168.10.23/24 ’:" IP_netmask
			read -p "请输入您要设置的网关‘ 格式如:192.168.10.1’:" GATWAY
			read -p "请输入您要设置的DNS‘格式如 114.114.114.114': " DNS
		
			#查看网络配置文件中ipv4 在哪一行
			ipv4InNum=$( grep  '\[ipv4\]' -n ${netfile} |awk -F ':' '{print $1}')
			#根据ipv4所在行 即可知道ipv4下的method所在行
			#删除method=auto
			sed "$((${ipv4InNum}+1))d" ${netfile} -i
			

			#在ipv4所在行下插入网络配置信息
			sed "${ipv4InNum}a method=manual"  ${netfile} -i
			sed "$((${ipv4InNum}+1))a may-fail=false"  ${netfile} -i
			sed "$((${ipv4InNum}+2))a address1=${IP_netmask},${GATWAY}"  ${netfile} -i
			sed "$((${ipv4InNum}+3))a dns=${DNS}"  ${netfile} -i
			echo "---------网络配置成功!配置信息如下----------"
			cat ${netfile}
			echo "---------------------------------------------"
			sleep 1
			read -p "是否立即加载网络配置生效,如果否,则全部配置完成后重启服务器生效或者执行命令:nmcli connection reload /etc/NetworkManager/system-connections/ens160.nmconnection,然后再执行命令nmcli connection up ens160生效  是: y  否则任意键退出" yn
			if [ "${yn}" == "y" ];then
				echo "网络配置文件加载中..."
				sleep 1
				nmcli connection reload ${netfile}
				echo "配置新ip即将生效,如果您正在使用远程工具登录请使用新的ip地址${IP_netmask}进行登录"
				sleep 1
				nmcli connection up ens160
			else
				return 0
			fi	
		else
			info
		fi
			
	fi
}


function setHostname(){
	echo "优化2:确定要更改主机名么,是:y  按其他任意键退出"
        read yn
        if [ "${yn}" == "y" ]; then
		echo "请输入您的主机名:"
		read hostname
		hostnamectl set-hostname ${hostname} &>> ${LOGINFO}
		if [ $? -eq 0 ]; then
			echo "主机名设置成功! 您的主机名:${hostname}"
			return 0
		else
			echo "您的主机名设置失败,更多详细信息请查看日志文件${LOGINFO}"
			return 1
		fi
       
        else
                info
        fi

}


function installTools(){
	echo "您将下载的常用工具有:wget vim net-tools chrony lrzsz telnet nmap psmisc nc sshpass unzip"
	echo "是否确认下载? 是:y  其他任意键退出"
	read yn
	if [ "${yn}" == "y" ]; then
		yum install -y wget vim net-tools chrony lrzsz telnet nmap psmisc nc sshpass unzip &>> ${LOGINFO}
		if [ "$?" -eq "0" ];then
			echo "工具下载安装成功!"
			return 0
		else
			echo "常用工具下载安装失败!详情请看文件${LOGINFO}"
			return 1
		fi
	else
		info
	fi

}


function closeFirewalld(){
	echo "确定要关闭防火墙么,是: y 按其他任意键退出"
	read yn
	if [ "${yn}" == "y" ];then
		echo "防火墙关闭中..."
		systemctl stop firewalld &>> ${LOGINFO}
		if [ "$?" == "0" ]; then
			echo "防火墙已关闭!"
			return 0
		else
                        echo "防火墙关闭失败!详情请看文件${LOGINFO}"
                        return 1
		fi
	else
		info
	fi
}

function closeSwap(){
	echo "确定要关闭交换分区么?是: y 按其他任意键退出"
	read yn
	if [ "$yn" == "y" ];then
		swapoff -a 
		sed -ri 's/.*swap.*/#&/' /etc/fstab &>> ${LOGINFO}
                if [ "$?" == "0" ]; then
                        echo "交换分区已关闭!"
                        return 0
                else
                        echo "交换分区关闭失败!详情请看文件${LOGINFO}"
                        return 1
                fi
  	else
		info
	fi
} 

function setTabChar(){
	echo "确定设置tab按键字符么?是:y  其他任意键退出"
        read yn
        if [ "$yn" == "y" ];then
		read -p "请输入tab按键时的字符数:" CHARNUM
		echo -e "set tabstop=${CHARNUM}\nset shiftwidth=${CHARNUM}" >> ~/.vimrc
                if [ "$?" == "0" ]; then
                        echo "tab安键为${CHARNUM}个字符成功!"
                        return 0
                                 
                fi
        else
                info
        fi
	

}

function setFileTitle(){
    read -p  "确定设置新建文件时的文件头部信息? 是:y   其他任意键退出" yn
    if [ "$yn" == "y" ];then
		who=`whoami`
		cat >> ~/.vimrc <<EOF
autocmd BufNewFile *.sh exec ":call AddTitleForShell()"
function  AddTitleForShell()
   call append(0,"#!/bin/bash")
   call append(1,"# **********************************************************")
   call append(2,"# * Author        : ${who}")
   call append(3,"# * Email         : ${who}@163.com")
   call append(4,"# * Create time   : ".strftime("%Y-%m-%d %H:%M"))
   call append(5,"# * Filename      : ".expand("%:t"))
   call append(6,"# * Description   : ")
   call append(7,"# **********************************************************")
endfunction

autocmd BufNewFile *.py exec ":call AddTitleForPython()"
function  AddTitleForPython()
   call append(0,"#!/usr/bin/python3")
   call append(1,"# **********************************************************")
   call append(2,"# * Author        : Yonghai")
   call append(3,"# * Email         : Yonghai@163.com")
   call append(4,"# * Create time   : ".strftime("%Y-%m-%d %H:%M"))
   call append(5,"# * Filename      : ".expand("%:t"))
   call append(6,"# * Description   : ")
   call append(7,"# **********************************************************")
endfunction
EOF
		if [ "$?" == "0" ]; then
        	echo "新建文件头部信息设置成功!"
            return 0
        fi
	else
       	info
    fi
}


#功能选择
choice(){
	echo "---------功能列表-----------"
	echo "1:设置网络"
	echo "2:设置主机名"
	echo "3:下载常用工具"
	echo "4:关闭防火墙"
	echo "5:关闭交换分区"
	echo "6:设置tab按键字符"
	echo "7:设置新建文件头部信息"
	echo "8:设置selinux" 
	echo "0:退出"
	echo "----------------------------"
	read -p "请输入您要进行操作的功能序号:"  choice_num

}

choice

#功能执行
if [ ${choice_num} == 0 ];then
	echo "正在退出!!"
	sleep 1
	exit 0

elif [ ${choice_num} == 1 ];then
	setNetwork

elif [ ${choice_num} == 2 ];then
	setHostname

elif [ ${choice_num} == 3 ];then
	installTools

elif [ ${choice_num} == 4 ];then
	closeFirewalld

elif [ ${choice_num} == 5 ];then
	closeSwap

elif [ ${choice_num} == 6 ];then
        setTabChar

elif [ ${choice_num} == 7 ];then
        setFileTitle

else
	echo -n  "您输入有误!!"
	info	
fi

运行脚本

bash init.sh
在这里插入图片描述

### 在 Rocky Linux 9.2 上安装和配置 OpenStack #### 准备工作 为了确保顺利安装,需先准备并验证环境。确认硬件资源充足,并完成基础网络设置。 #### 安装操作系统 下载适合的 Rocky Linux ISO 文件并按照官方指南安装操作系统[^2]。对于 Rocky Linux 9.x 版本,建议访问官方网站获取最新镜像文件以获得更好的兼容性和安全性更新。 #### 配置本地 YUM 源 创建稳定的软件包仓库至关重要。将所需的 OpenStack 软件包加入到系统的 yum 源列表中以便后续安装操作更加便捷高效: ```bash [root@control ~]# cd /etc/yum.repos.d/ [root@control yum.repo.d]# mkdir backup && mv *.repo ./backup/ [root@control yum.repo.d]# vi openstack-rocky.repo ``` 编辑 `openstack-rocky.repo` 文件如下所示: ```ini [openstack-zed] name=OpenStack Zed for Rocky Linux $releasever baseurl=https://mirror.centos.org/centos/$releasever/cloud/x86_64/openstack-zed/ enabled=1 gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-SIG-Cloud ``` 保存更改后执行命令刷新缓存: ```bash [root@control yum.repo.d]# yum clean all [root@control yum.repo.d]# yum makecache fast ``` #### 使用 Kolla-Ansible 进行部署 Kolla-Ansible 是一种用于简化 OpenStack 部署的方法之一,在单节点或多节点环境中均可应用。此工具允许通过 Ansible Playbook 自动化整个过程,从而减少手动干预的需求。 首先克隆 Kolla 和 Kolla-Ansible 的 Git 存储库: ```bash git clone https://opendev.org/openstack/kolla-ansible.git ~/kolla-ansible -b stable/zed cd ~/kolla-p /etc/kolla/config cp -r contrib/examples/all-in-one/* /etc/kolla/ ``` 接着修改 `/etc/kolla/globals.yml` 中的相关参数来适应具体需求,比如密码、IP 地址等信息。之后运行初始化容器镜像以及实际部署流程: ```bash kolla-ansible -i all-in-one bootstrap-servers kolla-ansible -i all-in-one prechecks kolla-ansible -i all-in-one deploy ``` 最后启动 Horizon Dashboard 及其他必要的服务组件,使用户能够通过 Web 浏览器管理和监控新搭建好的私有云平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值