欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

OpenStack實踐(十):CloudInit+ConfigDrive定制實例

環(huán)境:

專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、商城建設(shè)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)建站的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

openstack版本pike
控制節(jié)點主機openstack-controller(ubuntu 16.04.5) 172.27.34.37
計算節(jié)點主機openstack-computer(ubuntu 16.04.5) 172.27.34.38
vxlan100
centos7-init(172.27.100.2)、ubuntu1604(172.27.100.20)
centos7鏡像
CentOS-7-x86_64-GenericCloud-1809.qcow2c
ubuntu16.04鏡像
xenial-server-cloudimg-amd64-disk1.img
cloud-init
cloud-init 0.7.9

ubuntu安裝詳見:Ubuntu16.04.5以lvm方式安裝全記錄

openstack安裝詳見:OpenStack實踐(一):Ubuntu16.04下DevStack方式搭建p版OpenStack

浮動ip搭建詳見:OpenStack實踐(九):Open vSwitch方式實現(xiàn)floating IP

架構(gòu)圖:

OpenStack實踐(十):Cloud Init+Config Drive定制實例

cloud-init簡介

cloud-init是linux的一個工具,當(dāng)系統(tǒng)啟動時,cloud-init可從nova metadata服務(wù)或者config drive中獲取metadata,完成包括但不限于下面的定制化工作:
1.設(shè)置 default locale
2.設(shè)置 hostname
3.添加 ssh keys到 .ssh/authorized_keys
4.設(shè)置用戶密碼
5.配置網(wǎng)絡(luò)

為了實現(xiàn)instance定制工作,cloud-init會按5個階段執(zhí)行任務(wù):
1.Generator    (cloud-config.target)
2.Local    (cloud-init-local.service)
3.Network    (cloud-init.service)
4.Config    (cloud-config.service)
5.Final    (cloud-final.service)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

各階段作用

Generator:讀取配置文件cloud.cfg;

Local:定位“本地”數(shù)據(jù)源和配置網(wǎng)絡(luò);

Network:讀取cloud_init_modules模塊的指定配置;

Config:讀取cloud_config_modules模塊的指定配置

Final :分別讀取cloud_final_modules模塊的指定配置

OpenStack實踐(十):Cloud Init+Config Drive定制實例

cloud image
ubuntu鏡像:http://cloud-images.ubuntu.com/
centos7鏡像:http://cloud.centos.org/centos/7/images/
這些鏡像已經(jīng)預(yù)裝cloud-init

config drive

當(dāng)無dhcp服務(wù)時,可以通過config drive獲得metadata

配置config driver

stack@openstack-controller:~$ view /etc/nova/nova.conf
flat_injected = True

該配置是為了關(guān)閉DHCP服務(wù)時實例網(wǎng)卡也能被正確配置,重啟計算服務(wù)后配置生效。

stack@openstack-controller:~$ sudo systemctl restart devstack@n*

關(guān)閉dhcp

為確保實例通過config driver獲取的metadata,這里關(guān)閉dhcp服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

啟動實例

root@openstack-controller:~# nova boot --flavor m1.small --image centos7  --availability-zone nova:openstack-controller --nic net-name=vxlan100 --key-name centos7 --security-groups centos7 --user-data /tmp/centos.config --config-drive true centos7-init

通過--config-drive true啟用config-driver,通過--user-data /tmp/centos.config加載配置,ubuntu的配置文件為/tmp/ubuntu.config

打印的日志,傳入的user_data

OpenStack實踐(十):Cloud Init+Config Drive定制實例

綁定浮動IP

OpenStack實踐(十):Cloud Init+Config Drive定制實例

user-data:centos.config

root@openstack-controller:~# more /tmp/centos.config
#cloud-config
chpasswd:
    list: |
        root:rootroot
        centos:centos
    expire: false
ssh_pwauth: yes

hostname: loong576

yum_repos:
    epel-163:
        baseurl: http://mirrors.163.com/centos/$releasever/os/$basearch/
        name: Centos-7
        enabled: true

resolv_conf:
    nameservers: ['218.104.1xx.1xx', '8.8.8.8']
    searchdomains:
        - localdomain
    domain: localdomain
    options:
        rotate: true
        timeout: 1
manage_resolv_conf: true


packages:
    - vim
    - wget
    - httpd

timezone: 'Asia/Shanghai'

runcmd:
    - [ sed, -i, "s/^ *SELINUX=enforcing/SELINUX=disabled/g", /etc/selinux/config ]
    - [ mkdir, /dropme ]
    - [ touch, /root/abc.txt ]
    - [ sed, -i, "s/^ *nameserver.*/nameserver 218.104.1xx.1xx/g", /etc/resolv.conf ]
    - [ rpm, --import, /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ]

power_state:
    delay: now
    mode: reboot
    message: reboot now
    timeout: 30
    condition: true

驗證是否生效

驗證定制的配置文件centos.config是否生效

OpenStack實踐(十):Cloud Init+Config Drive定制實例

實例可以直接root登陸(默認(rèn)只能通過創(chuàng)建密鑰對方式登陸)成功獲取到ip,配置了yum源、時區(qū),runcmd運行正常,關(guān)閉了selinux(power-state-change正常),產(chǎn)生了測試文件,修改了DNS信息

user-data:ubuntu.config

root@openstack-controller:~# more /tmp/ubuntu.config
#cloud-config
chpasswd:
    list: |
        root:rootroot
        ubuntu:ubuntu
    expire: false
ssh_pwauth: yes


hostname: ubuntu1604

apt:
    primary:
        - arches: [default]
          uri: "http://mirrors.aliyun.com/ubuntu/"
          search:
            - "http://mirrors.aliyun.com/ubuntu/"


resolv_conf:
    nameservers: ['218.104.1xx.1xx', '8.8.8.8']
    searchdomains:
        - localdomain
    domain: localdomain
    options:
        rotate: true
        timeout: 1
manage_resolv_conf: true

packages:
 - apache2

timezone: 'Asia/Shanghai'

runcmd:
    - [ mkdir, /dropme ]
    - [ sed, -i, "$a nameserver 218.104.1xx.xxx", /etc/resolv.conf ]

驗證是否生效

驗證定制的配置文件ubuntu.config是否生效

OpenStack實踐(十):Cloud Init+Config Drive定制實例

實例可以直接ubuntu登陸(默認(rèn)只能通過創(chuàng)建密鑰對方式登陸)成功獲取到ip,配置了hostname、apt源、時區(qū),runcmd運行正常,產(chǎn)生了測試文件,修改了dns信息

查看config drive

sr0就是config driver,掛載并查看

[root@centos7-init ~]# lsblk 
[root@centos7-init ~]# mount /dev/sr0 /mnt
[root@centos7-init ~]# cd /mnt/openstack/latest/ && ll
[root@centos7-init latest]# more meta_data.json 
[root@centos7-init latest]# more user_data

OpenStack實踐(十):Cloud Init+Config Drive定制實例

OpenStack實踐(十):Cloud Init+Config Drive定制實例

meta_data.json中存放了public_keys,hostname等信息,user_data對應(yīng)centos.config。

cloud-init.log日志分析

[root@centos7-init ~]# view /var/log/cloud-init.log

第一階段服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

第二階段服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

第三階段服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

OpenStack實踐(十):Cloud Init+Config Drive定制實例

在第三階段init-network服務(wù)會依次讀取cloud_init_modules模塊中以下配置:check-cache、consume-user-data、consume-vendor-data、config-migrator、config-bootcmd、config-write-files、config-growpart、config-resizefs、config-set_hostname、config-update_etc_hosts、config-rsyslog、config-users-groups、config-ssh

第四階段服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

在第四階段modules-config服務(wù)會依次讀取cloud_config_modules模塊中以下配置:check-cache、consume-user-data、consume-vendor-data、config-migrator、config-bootcmd、config-write-files、config-growpart、config-resizefs、config-set_hostname、config-update_etc_hosts、config-disable-ec2-metadata、config-runcmd

第五階段服務(wù)

OpenStack實踐(十):Cloud Init+Config Drive定制實例

在第五階段modules-final服務(wù)會依次讀取cloud_final_modules模塊中以下配置:config-rightscale_userdata、config-scripts-per-boot、config-scripts-per-instance、config-scripts-user、config-ssh-authkey-fingerprints、config-keys-to-console、config-phone-home、config-final-message、config-power-state-chang

OpenStack實踐(十):Cloud Init+Config Drive定制實例

cloud init的modules里面提供了豐富的定制信息,詳情可以參考Cloud-Init官網(wǎng):https://cloudinit.readthedocs.io/en/latest/index.html#

cloud-init調(diào)試

各服務(wù)單獨調(diào)試

init-local:cloud-init init --local
cloud_init_modules:cloud-init init
cloud_config_modules:cloud-init modules --mode=config
cloud_final_modules:cloud-init modules --mode=final

[root@centos7-init ~]# cloud-init init --local

OpenStack實踐(十):Cloud Init+Config Drive定制實例

OpenStack實踐(十):Cloud Init+Config Drive定制實例

調(diào)試某模塊的某個配置

[root@centos7-init ~]# cloud-init single --name timezone

OpenStack實踐(十):Cloud Init+Config Drive定制實例

調(diào)試cloud_config_modules模塊的timezone配置

實踐總結(jié):

1.各模塊的各配置項依次讀取生效

在定制實例時,會依次讀取配置文件cloud.cfg配置項。

實驗環(huán)境的主機需配DNS才能訪問外網(wǎng),通過cloud_config_modules模塊的runcmd配置項配置DNS,由于配置項package-update-upgrade-install在runcmd之前,cloud-init會先安裝軟件,這時外網(wǎng)是不通的,所以報錯。

OpenStack實踐(十):Cloud Init+Config Drive定制實例


2.centos的hostname設(shè)置不生效

嘗試了很多參數(shù)組合,都沒有到hostname,原因待查

嘗試過的參數(shù)

hostname: loong576
manage_etc_hosts: true
preserve_hostname: true
fqdn: loong576

ubuntu沒有這個問題,只需設(shè)置hostname即可,重啟系統(tǒng)也任然生效。


3.DNS配置不生效

配置項resolv_conf不生效。centos和ubuntu都不生效,centos貌似是個bug,參考:https://bugzilla.redhat.com/show_bug.cgi?id=1489270,ubuntu建議將dns信息寫入網(wǎng)卡/etc文件/network/interfaces。

4.runcmd執(zhí)行命令是應(yīng)該是雙引號

這個有點坑,在用sed命令執(zhí)行關(guān)閉selinux和配置DNS時,正常的單引號''需替換為"",否則執(zhí)行報錯。

OpenStack實踐(十):Cloud Init+Config Drive定制實例

5.某個配置項不合法則整個配置不生效

runmcd有個配置非法

OpenStack實踐(十):Cloud Init+Config Drive定制實例

報錯日志

OpenStack實踐(十):Cloud Init+Config Drive定制實例

此時整個centos.config配置文件不生效

cloud-init配置文件已上傳github:https://github.com/loong576/cloud-init.git

參考:

https://cloudinit.readthedocs.io/en/latest/
https://docs.openstack.org/ironic/latest/install/configdrive.html
https://help.ubuntu.com/community/CloudInit
https://blog.csdn.net/allison_ywt/article/details/52943480
https://blog.51cto.com/cloudman/1912640

文章標(biāo)題:OpenStack實踐(十):CloudInit+ConfigDrive定制實例
文章URL:http://chinadenli.net/article10/iegodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、用戶體驗、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)、外貿(mào)建站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
亚洲最新的黄色录像在线| 四十女人口红哪个色好看| 日韩欧美第一页在线观看| 又黄又色又爽又免费的视频| 欧美日韩人妻中文一区二区| 丰满少妇高潮一区二区| 少妇人妻精品一区二区三区| 亚洲永久一区二区三区在线| 亚洲国产四季欧美一区| 国产精品香蕉在线的人| 日韩在线一区中文字幕| 女人精品内射国产99| 国产精品一区二区日韩新区| 国产精品香蕉在线的人| 中文字幕欧美视频二区| 91麻豆视频国产一区二区| 婷婷基地五月激情五月| 五月天婷亚洲天婷综合网| 一区二区在线激情视频| 国产欧美日韩视频91| 国产一区日韩二区欧美| 亚洲国产精品久久网午夜| 久久精品国产熟女精品| 欧美一区二区黑人在线| 国产日产欧美精品视频| 国产精品久久久久久久久久久痴汉| 日本加勒比在线播放一区| 国产成人精品99在线观看| 久久国产青偷人人妻潘金莲| 91免费精品国自产拍偷拍| 91播色在线免费播放| 不卡在线播放一区二区三区| 熟女高潮一区二区三区| 最近中文字幕高清中文字幕无 | 亚洲天堂男人在线观看| 日韩色婷婷综合在线观看| 精品人妻一区二区三区免费看 | 加勒比系列一区二区在线观看| 国产精品视频第一第二区| 国产欧美亚洲精品自拍| 亚洲天堂精品一区二区|