RHEL Atomic Host 初始配置文件cloud-init说明

    • 1.如何使用cloud-init创建用户?
    • 2.如何使用户首次登录时必须更改密码?
    • 3.如何更改默认用户名?
    • 4.如何设置root密码?
    • 5.如何添加更多用户?
    • 6.如何运行第一个启动命令?
    • 7.如何添加额外的sudoers?
    • 8.如何设置静态网络配置?
    • 9.如何只创建root用户?
    • 10.如何设置根逻辑卷大小?
    • 11.如何启用overlay2驱动程序?

Red Hat Enterprise Linux Atomic Host使用cloud-init在安装和首次启动期间配置系统。最初开发Cloud-init是为了提供云实例的早期初始化。在Red Hat Enterprise Linux Atomic Host中,它还可用于虚拟机安装。

cloud-init使用的文件是YAML格式的文件。

注意:cloud-init仅在第一次启动计算机时运行。如果cloud-init由于文件中的语法错误或者缺少必需的指令(例如用户凭据)而失败,则必须重新创建并启动新实例。一个启动失败的实例将无法正常工作。

以下是如何使用cloud-init执行常见任务的一些示例。

1.如何使用cloud-init创建用户?

要使用cloud-init创建用户,您必须创建两个文件:meta-data和user-data,然后将它们打包到ISO映像中。

创建一个目录:

$ mkdir cloudinitiso
$ cd cloudinitiso

创建一个名为meta-data的文件,添加以下内容

instance-id: Atomic0
local-hostname: atomic-00

创建一个名为user-data的文件,添加以下内容

#cloud-config
password: atomic
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
  - ssh-rsa AAA...SDvZ [email protected]

上面的user-data文件的最后一行是SSH公钥。SSH公钥可以在〜/ .ssh / id_rsa.pub中找到。

创建包含meta-data 和user-data的ISO映像

# genisoimage -output atomic0cidata.iso -volid cidata -joliet -rock user-data meta-data

生成 名为atomic0cidata.iso的文件。将此文件附加到您计划安装Red Hat Enterprise Linux Atomic Host的计算机上,您的用户名将为“cloud-user”,密码将为“atomic”。

2.如何使用户首次登录时必须更改密码?

强制“cloud-user”在第一次登录时更改其密码,将user-data文件中的chpasswd: {expire: False}改为chpasswd: {expire: True}。这是一个全局设置。如果将此项设置为True,则所有创建的用户都必须更改其密码。

#cloud-config
password: atomic
chpasswd: {expire: True}
ssh_pwauth: True
ssh_authorized_keys:
  - ssh-rsa AAA...SDvz [email protected]
  - ssh-rsa AAB...QTuo [email protected]

3.如何更改默认用户名?

要将默认用户名从cloud-user更改为其他用户,请将user: username添加到用户数据文件中:

#cloud-config
user: username
password: atomic
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
  - ssh-rsa AAA...SDvz [email protected]
  - ssh-rsa AAB...QTuo [email protected]

4.如何设置root密码?

要设置root密码,必须在user-data文件的chpasswd部分中创建用户列表。列表的格式如下所示。空格很重要,因此不要在冒号(:)的任何一侧包含任何空格,因为它会设置一个带有空格的密码。如果使用此方法设置用户密码,则必须在此部分中设置所有密码。这意味着password:必须从顶部移动到此部分。

#cloud-config
ssh_pwauth: True
ssh_authorized_keys:
  - ssh-rsa AAA...SDvz [email protected]
  - ssh-rsa AAB...QTuo [email protected]
chpasswd:
  list: |
     root:password
     cloud-user:atomic
  expire: False

5.如何添加更多用户?

在user-data文件的users部分中创建和描述用户。添加此部分也需要在此处设置默认用户的选项。

如果users部分中的第一个条目是default默认用户,则将与其他用户一起创建cloud-user。如果省略默认行,则不会创建cloud-user。默认情况下,如果没有selinux-user值,用户将被标记为unconfined_u

#cloud-config
users:
  - default
  - name: foobar
    gecos: User N. Ame
    selinux-user: staff_u
    groups: users,wheel
    ssh_pwauth: True
    ssh_authorized_keys:
      - ssh-rsa AA..vz [email protected]
chpasswd:
  list: |
    root:password
    cloud-user:atomic
    foobar:foobar
  expire: False

6.如何运行第一个启动命令?

user-data文件 的runcmd和bootcmd部分可用于在启动和初始化期间执行任意命令。该部分在inti过程的早期运行,在init结束时执行。这些命令不会保存用于将来的引导,只会在第一次初始化引导期间执行。

#cloud-config
users:
  - default
  - name: foobar
    gecos: User N. Ame
    groups: users
chpasswd:
  list: |
    root:password
    fedora:atomic
    foobar:foobar
  expire: False
bootcmd:
 - echo New MOTD >> /etc/motd
runcmd:
 - echo New MOTD2 >> /etc/motd

7.如何添加额外的sudoers?

通过向user-data文件的users部分添加sudo和groups条目,可以将用户配置为sudoer,如下所示。

#cloud-config
users:
  - default
  - name: foobar
    gecos: User D. Two
    sudo: ["ALL=(ALL) NOPASSWD:ALL"]
    groups: wheel,adm,systemd-journal
    ssh_pwauth: True
    ssh_authorized_keys:
      - ssh-rsa AA...vz [email protected]
chpasswd:
  list: |
    root:password
    cloud-user:atomic
    foobar:foobar
  expire: False

8.如何设置静态网络配置?

将一个network-interfaces部分添加到meta-data文件中。本节包含常用的网络配置选项集。

由于cloud-init 中存在当前错误,因此不会自动启动静态网络配置。而是默认的DHCP配置保持活动状态。建议的解决方法是通过bootcmd指令手动停止和重新启动网络接口。

network-interfaces: |
  iface eth0 inet static
  address 192.168.1.10
  network 192.168.1.0
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.254
bootcmd:
  - ifdown eth0
  - ifup eth0

9.如何只创建root用户?

要仅创建root用户,请在user-data文件的users部分中为root创建一个条目。

users:
  - name: root
chpasswd:
  list: |
    root:password
  expire: False

您可以为root用户设置SSH密钥,如下所示:

users:
  - name: root
    ssh_pwauth: True
    ssh_authorized_keys:
      - ssh-rsa AA..vz [email protected]

10.如何设置根逻辑卷大小?

要将根逻辑卷的大小设置为6GB(例如,而不是默认的3GB),请在user-data中使用该指令write_files:

write_files:
  - path: /etc/sysconfig/docker-storage-setup
    permissions: 0644
    owner: root
    content: |
    ROOT_SIZE=6G

11.如何启用overlay2驱动程序?

overlay2通过容器存储设置启用。使用runcmd指令将STORAGE_DRIVER选项更改为“overlay2”:

runcmd:
  - echo "STORAGE_DRIVER=overlay2" >> /etc/sysconfig/docker-storage-setup

你可能感兴趣的:(Docker,Linux)