2017-08-23
fuel 完全离线配置
完全离线适用于部署在内网,无Internet的环境当中,且需要升级fuel版本的情况。理论上,我的办法适用所有版本。
以下所有操作全部在fuel节点上。
1. 首先把离线repo做出来.
mkdir /var/www/nailgun/mirrors/
如果有已经存在的离线mirrors,则打包拷贝到/var/www/nailgun/mirrors/下
链接: https://pan.baidu.com/s/1kUEvOaz 密码: vdns
(无需关心离线包的新旧,一会儿都会更新。)
tar -cvf /mirrors.tar mirrors/ 打包已有的离线源。第一次搭建请无视此条。 tar -xvf mirrors.tar
将里面的内容,拷贝到/var/www/nailgun/mirrors/下。如果解压出来后带有mirrors目录,则合并。
修改源地址的配置文件
将官方repo地址,替换为阿里云的地址
vim /usr/share/fuel-mirror/ubuntu.yaml
ubuntu_baseurl: &ubuntu_baseurl
http://archive.ubuntu.com/ubuntu
改为
ubuntu_baseurl: &ubuntu_baseurl
http://mirrors.aliyun.com/ubuntu
运行命令 fuel-createmirror 开始制作本地源
fuel-createmirror
(这里就会更新所有mirrors目录下的安装包。)
到此离线reop制作完成,仅服务于fuel平台搭建完成后,部署openstack时,各节点的系统与openstack相关包。
2. 制作升级fuel用的离线repo。
把fuel升级的包和repodata通过可以上Internet的机器下载下来.放到/var/www/nailgun/fuel-update/下
url可以根据实际情况修改版本号,我使用的是9.0,升级到9.1.
分别将
mos-mirrors-os.txt ,
mos-mirrors-security.txt ,
mos-mirrors-updates.txt . 三个文件中的链接所提供的
Packages/ 和
repodata/ 使用 wget -nd -r -l1 --no-parent 命令下载到本地. 例如:
wget -nd -r -l1 --no-parent http://mirror.seed-us1.fuel-infra.org/mos-repos/centos/mos9.0-centos7/security/x86_64/repodata/ wget -nd -r -l1 --no-parent http://mirror.seed-us1.fuel-infra.org/mos-repos/centos/mos9.0-centos7/security/x86_64/Packages/
下载之前在fuel-update下创建对应的文件夹.进入文件夹执行以上命令。
如:
mkdir -p /var/www/nailgun/fuel-update/mos-os/x86_64/Packages/ mkdir -p /var/www/nailgun/fuel-update/mos-os/x86_64/repodata/
也可以使用其他能制作repo镜像的工具。只要能下载下来就可以。
3. 应用fuel升级离线repo。
编辑所有mos的repo文件: 将baseurl更改为实际的路径,例子如下:
[mos$fuelver-base] name=mos$fuelver-base baseurl=file:///var/www/nailgun/fuel-update/mos-os/x86_64/ enabled=1 gpgcheck=0 skip_if_unavailable=1
4. 编辑/usr/share/fuel-mirror/ubuntu.yaml 根据实际情况更改mos repo地址
vim /usr/share/fuel-mirror/ubuntu.yaml ubuntu_baseurl: &ubuntu_baseurl http://10.20.0.2:8080/mirrors/ubuntu mos_baseurl: &mos_baseurl http://10.20.0.2:8080/mirrors/mos-repos/ubuntu/$mos_version
5. 升级fuel主节点和制作bootstrap
yum clean all yum install python-cudet
5.1 修改制作bootstrap的配置文件
vim /etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml
将里面的repo地址.全部改成离线的.
#可选:更改hashed_root_password
生成一个加密的密码。替换
[your password]字段。
openssl passwd -1 -salt 'random-phrase-here' '[your password]'
hashed_root_password: "$1$random-p$aRoBt5ZfG8C20JAfBvU760"
(加密后的密码为passw0rd)
此步仅用来使bootstarp可直接登陆,无需通过fuel主节点登陆。对部署无影响,仅用来方便排错。
5.2 更改完之后拷贝一份,备用。
cp /etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml /etc/fuel-bootstrap-cli/fuel_bootstrap_cli.yaml.bak
注意:在升级fuel的过程中,系统会自动的创建bootstrap,如果不更改这个文件,在不联网的情况下,会导致升级卡住,可能导致失败.
然而在升级过程中,fuel会再次覆盖重置此文件,所以我们要在升级过程中保证此文件在被覆盖后可以手动的修改回来,所以备份一份随时准备恢复回去. 恢复的时机就是再fuel升级完rabbitmq之后,就可以把备份的文件拷贝回去了.这样就不会出现更改完fuel_bootstrap_cli.yaml后,升级时又重置回去的问题了。
5.3 运行命令升级fuel到新版本。
update-prepare update master
[your password]
