cloud-init中NoCloud配置

这篇具有很好参考价值的文章主要介绍了cloud-init中NoCloud配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章主要记录cloud-init工具中NoCloud数据源的使用方法,可以搭配KVM镜像制作系列文章,为用户定制操作系统。


NoCloud

数据源NoCloud允许用户在不运行网络服务的情况下向虚拟机实例提供用户数据user-data和元数据meta-data:

  • 可以通过vfat或者iso9660文件系统上的文件为虚拟机的引导提供数据,文件系统卷标签必须是cidata或者CIDATA,主要介绍。
  • 另外可以通过内核命令或者SMBIOS序列号选项来提供数据,在这里不多介绍。

使用方法

1. 安装并初始化文件

参考KVM镜像制作系列文章中对应操作系统的第三步进行静态IP配置中的第1、2点进行cloud-init的安装和重命名文件。

2. 修改cloud-init配置文件

进入/etc/cloud/,备份并修改cloud.cfg文件

sudo cp cloud.cfg cloud.cfg.bak
sudo vim cloud.cfg

将cloud.cfg中的所有内容修改为以下内容,该文件以yaml格式为准,需要注意格式

datasource_list: [ 'NoCloud' ]

# The modules that run in the 'init' stage
cloud_init_modules:
 - migrator
 - seed_random
 - bootcmd
 - write-files
 - growpart
 - resizefs
 - disk_setup
 - mounts
 - set_hostname
 - update_hostname
 - update_etc_hosts
 - ca-certs
 - rsyslog
 - users-groups
 - ssh

# The modules that run in the 'config' stage
cloud_config_modules:
# Emit the cloud config ready event
# this can be used by upstart jobs for 'start on cloud-config'.
 - emit_upstart
 - snap
 - ssh-import-id
 - locale
 - set-passwords
 - grub-dpkg
 - apt-pipelining
 - apt-configure
 - ubuntu-advantage
 - ntp
 - timezone
 - disable-ec2-metadata
 - runcmd
 - byobu

# The modules that run in the 'final' stage
cloud_final_modules:
 - package-update-upgrade-install
 - fan
 - landscape
 - lxd
 - ubuntu-drivers
 - puppet
 - chef
 - mcollective
 - salt-minion
 - reset_rmc
 - refresh_rmc_and_interface
 - rightscale_userdata
 - scripts-vendor
 - scripts-per-once
 - scripts-per-boot
 - scripts-per-instance
 - scripts-user
 - ssh-authkey-fingerprints
 - keys-to-console
 - phone-home
 - final-message
 - power-state-change

主要是**datasource_list: [ ‘NoCloud’ ]**这一句配置,将数据源指定为NoCloud,之后的所有命令都不需要在该文件中编写,而是在虚拟机外通过磁盘挂载的方式将用户数据传入到虚拟机中并执行。

3. 编写用户数据

在服务器上创建文件夹用于存储user-data并编写用户数据文件

mkdir cloud-init-file
cd cloud-init-file
vim my-user-data

my-user-data内容如下:

#cloud-config

chpasswd: 
    list: 
        - ubuntu:root
        - root:root
    expire: false

hostname: ubuntu1604

以下为内容详解

1. 文件必须以#cloud-config开头,指明该文件为cloud-init配置文件
2. chpasswd命令用于修改用户的密码,包括一个list和expire子项,其中list下需要按照“用户名:密码”的格式来指定用户的新密码,用户和密码之间不能存在空格,否则无法实现该功能,expire子项用于指定该密码是否有过期时间,一般设置为false即可。
3. hostname命令用于修改虚拟机主机名
4. 其他命令可以参考cloud-init官方文档进行编写

4. 制作配置镜像

安装镜像制作工具

sudo apt-get install cloud-image-utils

制作镜像

sudo cloud-localds -m local my-seed.img my-user-data

-m指定cloud-init的工作模式,local的意思是不需要依赖网络,完成上述命令后将生成my-seed.img

5. 挂载镜像

编辑虚拟机的xml配置文件

sudo virsh edit ubuntu16.04(虚拟机名称)

添加以下内容

<disk type='file' device='disk'>
   <driver name='qemu' type='raw' cache='none' io='native'/>
   <source file='xxx/cloud-init-file/my-seed.img'/> # my-seed.img文件路径
   <target dev='vdb' bus='virtio'/>
   <readonly/>
</disk>

6. 重启虚拟机

重新启动虚拟机后会自动按照该镜像中user-data文件的内容执行。文章来源地址https://www.toymoban.com/news/detail-410284.html

参考链接

  • cloud-init官方文档
  • 在本地KVM中使用cloud-init
  • OpenStack实践(十):Cloud Init+Config Drive定制实例

到了这里,关于cloud-init中NoCloud配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud 微服务系列文章合集,一次性看个够!

    微服务架构图 为了方便大家可以直接下载编辑,这里用的ProcessOn画的架构图,可以直接克隆一个出来进行编辑,地址:https://www.processon.com/view/6523a1b37fde9c4bb35c7278 微服务系列文章合集,点击阅读 Spring Cloud 微服务系列前言 Spring Cloud 微服务系列包版本号约定 IntelliJ IDEA 创建多模

    2024年02月08日
    浏览(48)
  • linux下arm环境启动脚本/etc/init.d/rcS执行命令失败,踩坑记录

    记一次踩坑记录!!! 接触到一个新的系统,需要在这个系统上跑程序,测试的时候,手动执行脚本和程序都没问题,于是将执行命令写入到linux启动脚本/etc/init.d/rcS这个文件中,然后重启,等待程序起来,但是让我意想不到的是,执行到我加的命令的时候,居然报错,找不

    2024年01月21日
    浏览(42)
  • 【Spring Cloud】新闻头条微服务项目:分布式文件系统MinIO实现文章页面存取

      个人简介:  📦个人主页:赵四司机 🏆学习方向:JAVA后端开发  📣种一棵树最好的时间是十年前,其次是现在! ⏰往期文章:SpringBoot项目整合微信支付 🧡喜欢的话麻烦点点关注喔,你们的支持是我的最大动力。 前言: 最近在做一个基于SpringCloud+Springboot+Docker的新闻头

    2023年04月08日
    浏览(55)
  • 自用vscode neovim插件配置文件 init.vim

    这样配置是为了区分 terminal 中使用 neovim 和在 vscode 中使用 neovim 使用不同的配置文件 $ cat ~/.config/nvim/init.vim 注意 window系统生效的配置文件和 *unix 系统文件生效的配置文件存放不同,window系统的配置是 %LocalAppData%nviminit.vim

    2024年02月13日
    浏览(54)
  • 【Spring Cloud】新闻头条微服务项目:文章内容安全审核(新增DFA+OCR过滤敏感词需求)

    个人简介:  📦个人主页:赵四司机 🏆学习方向:JAVA后端开发  ⏰往期文章:SpringBoot项目整合微信支付 🔔博主推荐网站:牛客网 刷题|面试|找工作神器 📣种一棵树最好的时间是十年前,其次是现在! 💖喜欢的话麻烦点点关注喔,你们的支持是我的最大动力。 前言:

    2023年04月08日
    浏览(92)
  • linux重装系统步骤 包含raid【主要针对服务器重装】,腾讯Linux运维开发面试记录

    8 、查看网关主机名: cat /etc/sysconfig/network 9 、查看单条网卡信息: ethtool 物理网卡名 比如有很多网卡 ,不知道 使用哪个网卡的时候,就用这个方法。 (万兆网Link为yes就是使用的网卡) ​​ 10、查看cpu内存 查看cpu 最简单方法:输入 top 后按 1 即可查看。 查看CPU信息(型号

    2024年04月12日
    浏览(47)
  • gitlab.rb主要配置

    根据是否docker安装,进入挂载目录或安装目录 修改此文件,我一般是在可视化窗口中修改,有时候也在命令行手敲 将下面的配置复制到该文件中 external_url \\\'http://192.168.100.50\\\' # nginx[\\\'listen_port\\\'] = 8000 (docker安装的这一行不需要,因为端口映射导致此处修改会导致访问不了页面,

    2024年01月23日
    浏览(48)
  • flink主要组件及高可用配置

    flink不论运行在哪种环境,例如Yarn,Mesos,Kebernute以及独立集群,每个应用都会包含重要的几个组件,本文就来讲述下flink的主要组件以及如何实现flink的高可用配置 如图所示,flink主要由Dispatcher,JobManager,ResourceManager,TaskManager是个组件组成,以下我们大概说一下他们的主要

    2024年02月09日
    浏览(34)
  • 【问题记录】微信小程序无法打开公众号文章

    参考链接:小程序通过webview打开公众号的文章 - 简书 问题记录: 问题1:公众号文章链接不对 解决办法:从公众号后台获取文章链接即可(不用更改业务域名) 问题2:小程序未关联公众号(检查路径:设置-关联设置-关联公众号) 解决办法:登录“公众号管理后台-小程序

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包