cloud-init使用技巧
对于 Linux 镜像,cloud-init 负责 instance 的初始化工作。cloud-init 功能很强大,能做很多事情,而且我们可以通过修改配置文件灵活定制 cloud-init。
cloud-init 的配置文件为 /etc/cloud/cloud.cfg,这里举几个应用场景:
1. 如果希望 root 能够直接登录 instance(默认不允许 root 登录),设置:
disable_root:
2. 如果希望能以 ssh passwod 方式登录(默认只能通过 private key 登录),设置:
ssh_pwauth:
3. 如果希望能够修改 instance 的 hostname(默认 instance 每次重启后 cloud-init 都会重新将 hostname 恢复成初始值),将cloud_init_modules 列表中下面两项删除或注释掉:
- set_hostname
- update_hostname
instance 每次启动 cloud-init 都会执行初始化工作,如果希望改变所有 instance 的初始化行为,则修改镜像的 /etc/cloud/cloud.cfg 文件;如果只想改变某个 instance 的初始化行为,直接修改 instance 的 /etc/cloud/cloud.cfg。
chpasswd:
list: |
user1:password1
user2:password2
user3:RANDOM
expire: False
例子2:
#cloud-config
chpasswd:
list: |
root:
ubuntu:
expire: false
如果指定expire, 并且设置为 false, 则将密码全局配置键用作所有用户帐户的密码。如果指定了expire并将其设置为 true, 则用户密码将过期, 从而防止使用默认的系统密码。
如果提供了list键, 则可以指定username:password列表。指定的用户名必须已存在于系统中, 或者已使用 cc_users_groups 模块创建
密码可以使用username:RANDOM 或者 username:R生成
如果提供了RAMDOM或者R选项的话密码会被设置为自动生成的字符串.这个密码可以在console-log(nova console-log )或者在/var/log/cloudinit-output.log中查看.
注意:cloud-init 只有第一次启动的时候会修改密码,也就是说第一次安装cloud-init,然后配置/etc/cloud/cloud.cfg,关机清理信息。再开机会强行修改密码。
接着再开机不会强行修改密码,即使删除cloud-init再重装配置也不行。
下面是cloud.cfg的一个例子:
users:
- default disable_root:
ssh_pwauth: locale_configfile: /etc/sysconfig/i18n
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '', '']
resize_rootfs_tmp: /dev
ssh_deletekeys:
ssh_genkeytypes: ~
syslog_fix_perms: ~ cloud_init_modules:
- migrator
- bootcmd
- write-files
- growpart
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- rsyslog
- users-groups
- ssh cloud_config_modules:
- mounts
- locale
- set-passwords
- yum-add-repo
- package-update-upgrade-install
- timezone
- puppet
- chef
- salt-minion
- mcollective
- disable-ec2-metadata
- runcmd cloud_final_modules:
- rightscale_userdata
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- scripts-user
- ssh-authkey-fingerprints
- keys-to-console
- phone-home
- final-message system_info:
default_user:
name: root
lock_passwd: true
gecos: Cloud User
groups: [wheel, adm]
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
shell: /bin/bash
distro: rhel
paths:
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
ssh_svcname: sshd # vim:syntax=yaml
chpasswd:
list: |
root:123456
expire: true
注意:
.如果镜像没有设置cloud_init,即使在计算节点的 /etc/nova/nova.conf 中配置 force_config_drive = true,也不会调用元数据信息
2.如果镜像设置了cloud_init,在计算节点的 /etc/nova/nova.conf 中没有配置 force_config_drive = true,依然会调用元数据信息,
而此时因为不知道怎么去调,所以会有一些报错信息,这样会导致开机比较久,而且每次开机都会读取元数据信息
提醒和解决方法:
如果之前的镜像是没有安装cloud-init,这时会有这种情况出现:
1.在/etc/nova/nova.conf中没有配置force_config_drive = true的计算节点中的机器,任何操作都是正常的;
即使在计算节点的 /etc/nova/nova.conf 中配置 force_config_drive = true,也不会调用元数据信息 2.这时通过rbd ls vms查看的所有虚拟机是这样子的:
4ff497bd-cd3c-4b8e-a607-40b08ba90ce1_disk 但是如果之后的镜像安装了cloud-init,则会出现这种情况:
1.在/etc/nova/nova.conf中配置了force_config_drive = true,那么之前用没有安装cloud-init的镜像安装的这些虚拟机
一旦重启就会变成ERROR 或者NOSTATE状态。
原因:
这时通过rbd ls vms查看的所有虚拟机是这样子的
4ff497bd-cd3c-4b8e-a607-40b08ba90ce1_disk
4ff497bd-cd3c-4b8e-a607-40b08ba90ce1_disk_config
并且读取的是4ff497bd-cd3c-4b8e-a607-40b08ba90ce1_disk_config文件 2.如果镜像设置了cloud_init,在计算节点的 /etc/nova/nova.conf 中没有配置 force_config_drive = true,依然会调用元数据信息,
而此时因为不知道怎么去调,所以会有一些报错信息,这样会导致开机比较久,而且每次开机都会读取元数据信息 解决:
1.修改数据库,然后关闭虚拟机再开机 推荐:
1.如果之前/etc/nova/nova.conf没有force_config_drive = true选项,则建议不要安装cloud_init;否则会出现各种奇怪的问题 有朋友说:突然多出的4ff497bd-cd3c-4b8e-a607-40b08ba90ce1_disk_config文件是因为迁移导致的,可能跟force_config_drive无关;
但是没有实验证明。
参考:http://www.cnblogs.com/CloudMan6/p/6431771.html
https://www.2cto.com/net/201708/667502.html
cloud-init使用技巧的更多相关文章
- openstack cloud init set password
设置代理和password #!/bin/bash cd /home/ubuntu wget otcloud-gateway.bj.intel.com/script.tar.gz ]; then cu ...
- openstack 使用cloud init 和 console-log, nbd或者libguestfs 获取VM中的硬件信息。
以获取PCI的信息为例. 基本代码: pci.py import base64 import guestfs from functools import partial import os impor ...
- 微信小程序开发技巧总结(二) -- 文件的选取、移动、上传和下载
微信小程序开发技巧总结(二) -- 文件的选取.移动.上传和下载 1.不同类型文件的选取 1.1 常用的图片 视频 对于大部分开发者来说,需要上传的文件形式主要为图片,微信为此提供了接口. wx.ch ...
- 微信小程序调用云函数出错 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -501005, error message Environment not found;
错误异常: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud ...
- 小程序开发技巧(三)-- 云开发时效数据刷新和存储 (access_token等)
小程序云开发时效数据刷新和存储 (access_token等) 1.问题描述 小程序中经常有需要进行OCR识别,或者使用外部api例如百度AI识别等接口,请求调用这些接口需要令牌,即一些具有时效性的数 ...
- 微信小程序云开发如何上手
简要介绍 微信小程序云开发,是基于 Serverless 的一站式后端云服务,涵盖函数.数据库.存储.CDN等服务,免后端运维.基于云开发可以免鉴权调用微信所有开放能力. 前提准备 微信开发者工具 创 ...
- 小程序开发 access_token 统一管理
TOKEN 定时刷新器 一.背景 对于使用过公众平台的API功能的开发者来说,access_token绝对不会陌生,它就像一个打开家门的钥匙,只要拿着它,就能使用公众平台绝大部分的API功能.因此,对 ...
- 分享使用tcb-router路由开发的云函数短信平台SDK
上篇文章我们分享了如何使用纯的云函数开发的榛子短信短信(http://smsow.zhenzikj.com)SDK,由于微信对于未付费云函数个数的限制,这种方法存在缺陷,经过改进,使用tcb-rout ...
- 【微信小程序云开发】从陌生到熟悉
前言 微信小程序在9月10号正式上线了云开发的功能,弱化后端和运维概念,以前开发一个小程序需要申请一个小程序,准备一个https的域名,开发需要一个前端一个服务端,有了云开发只有申请一个小程序,一个前 ...
- 小程序云开发--云函数上传文件或图片 base64
云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端, ...
随机推荐
- 从零开始のcocos2dx生活(六)EventDispatcher
EventDispatcher可能是所有的里面比较不容易理解也不容易看的 我说自己的理解可能会误导到你们-[索了你们看不下去>< 我写了几乎所有的代码的注释,有的是废话跳过就好 主要的代码 ...
- Qt5 http/HTTPS访问 以及JSON解析的实用
实用QT5访问HTTP/以及HTTPS协议访问 并且调用Json解析 #include "mywidget.h" #include "ui_mywidget.h" ...
- 洛谷$P4126\ [AHOI2009]$最小割 图论
正解:网络流+$tarjan$ 解题报告: 传送门$QwQ$ $umm$最小割的判定问题$QwQ$,因为并不会做是看的题解才会的,所以也没什么推导过程直接放结论趴$QwQ$ 首先跑个最大流,然后有. ...
- $POJ$2976 $Dropping\ tests$ 01分数规划+贪心
正解:01分数规划 解题报告: 传送门! 板子题鸭,,, 显然考虑变成$a[i]-mid\cdot b[i]$,显然无脑贪心下得选出最大的$k$个然后判断是否大于0就好(,,,这么弱智真的算贪心嘛$T ...
- 浅谈Linux下/etc/passwd文件
浅谈Linux 下/etc/passwd文件 看过了很多渗透测试的文章,发现在很多文章中都会有/etc/passwd这个文件,那么,这个文件中到底有些什么内容呢?下面我们来详细的介绍一下. 在Linu ...
- 搭建nginx
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...
- Linux学习_菜鸟教程_1
Linux系统启动过程:内核的引导 .运行init.系统初始化.建立终端.用户登录系统 内核引导:计算机开机,然后BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动. 操作系统接管硬件 ...
- css写斜角
项目开发中遇到了这样的效果,百度了一波,可以使用css3的伪类实现: /*斜角公用*/1.外层的div加class='wrapper' 并需要设置相对定位 .wrapper:before { -moz ...
- APICloud联合腾讯云推出“云主机解决方案“,各种福利等你拿
为了帮助开发者一站式打通云.开发.运维全流程服务,更全面提供基于自身业务情况的云服务器.数据库.存储等基础设施服务,APICloud联合腾讯云重磅推出“云主机解决方案“.开发者可通过控制台简单清晰的购 ...
- cogs 1176. [郑州101中学] 月考 字典树
1176. [郑州101中学] 月考 ★★☆ 输入文件:mtest.in 输出文件:mtest.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述] 在上次的月考中B ...