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]
