• Cloud-init原理


    Ubuntu修改主机名后,重启自动恢复原来的主机名?

    这是因为Ubuntu18.10上,默认安装并启动了cloud-init, 需要停止它的四个服务进程,才可以使用传统的方式修改主机名。
      cloud-init: https://cloudinit.readthedocs.io/en/latest/topics/examples.html?highlight=lock-passwd#including-users-and-groups
      这是它的官方帮助文档中的一篇。
      配置参数参考: https://www.cnblogs.com/gushiren/p/9511234.html
      元数据参考:https://www.cnblogs.com/gushiren/p/9511500.html
      使用示例参考: https://www.cnblogs.com/gushiren/p/9511570.html
            https://www.cnblogs.com/gushiren/p/9511593.html
      cloud-init简介:
        它是为解决云环境中,对新建虚拟机的初始化配置问题,所提供的一个解决方案,若你的非云环境,完全可以关闭它。

      它能做什么?
        它可以通过元数据服务来为批量创建的虚拟机设置主机名,配置创建什么用户,用户的密码,设置root是否能ssh登录,配置启动VM时,安装什么软件,以及执行什么脚本,甚至磁盘如何分区,分多大,格式化为什么文件系统,是否可自动增长等等,它都可以通过定义配置文件来实现。

      它的基本工作原理:
      local阶段:
        首先cloud-init-local 服务在开机时,最先启动,它会试图从元数据服务哪里获取IP的配置信息,若没有找到IP信息,就设置为dhcp自动获取IP,需要注意: 元数据服务有很多种,似乎每个厂家的规则还不太相同,这个不是很确定,具体有哪些元数据服务可用,可查看 dpkg-reconfigure cloud-init 这是Ubuntu或Debian系统中的查看方法,其它还需自行查询。在ubuntu上,默认启用了所有元数据服务,若你是VMware安装的Ubuntu虚拟机,那默认将使用本地的元数据服务,即/var/lib/cloud/seed/ 下面的本地磁盘文件来存储安装系统时,根据你的设置,自动生成的元数据配置文件信息。
      init, config, 和 final阶段:
        接着根据/etc/cloud/cloud.cfg 定义的,此三个阶段分别要执行的任务,其中每个任务都是以模块(module)形式设置的。
        虚拟机启动时 ,所有定制化项目都可在这三个阶段设置,但每个配置项,具体要做什么,就是由metadata(元数据)来决定了。
        如: cloud.cfg 中指定了 set_hostname 这个 module,则意味着 cloud-int 会设置 instance(虚拟机) 的主机名,而具体设置成哪个主机名则由 metadata 中 hostname 参数决定。

    关于其元数据配置文件:
    root@zcf:~# cat /var/lib/cloud/seed/nocloud-net/user-data
    #cloud-config          #凡是用户自定义的cloud-init的配置文件,必须以#cloud-config开头,这是cloud-init识别它的方式。
       growpart: {mode: 'off'}    #这些配置信息的含义 在上面给出的官方连接中都有介绍,这里就不多说了。
          hostname: zcf        #另外,在OpenStack中,你创建VM时,可直接在启动VM时,给其传递执行脚本处,写这些信息,也是可别cloud-init识别的。
          locale: en_US.UTF-8
          resize_rootfs: false
         users:
      - gecos: zcf
        groups: [adm, cdrom, dip, plugdev, sudo]
        lock-passwd: false
        name: zcf
        passwd: $6$221/i.......m6G/
        shell: /bin/bash

    非云环境的Ubuntu主机如何关闭Cloud-init:
      systemctl disable cloud-init-local cloud-init cloud-config cloud-final
      systemctl stop cloud-init-local cloud-init cloud-config cloud-final

  • 相关阅读:
    Linux常用命令大全
    YUM仓库服务
    Keepalived 双机热备
    VML
    CSS3选择器一
    lambda表达式详解
    将博客搬至CSDN
    html5本地数据库(一)
    疯狂的表单-html5新增表单元素和属性
    值类型与引用类型总结
  • 原文地址:https://www.cnblogs.com/wn1m/p/11284111.html
Copyright © 2020-2023  润新知