2017年5月5日金曜日

Oracle Linux 7 に cloud-init をインストールしてみる。

ふと思い立って、Oracle Linux 7.3 に cloud-init をインストールしてみます。
今回はも ORACLE の Public Yum サーバからインストールします。
この時点で、デフォルトの Yum リポジトリ設定で RPM を最新化してあります。
[root@vm02 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.3
[root@vm02 ~]# date
2017年  5月  5日 金曜日 03:33:14 JST
[root@vm02 ~]# yum upgrade -y
読み込んだプラグイン:ulninfo
No packages marked for update

インストールには、ol7_addons と ol7_optional_latest リポジトリを有効にします。
[root@vm02 ~]# yum install --enablerepo=ol7_addons --enablerepo=ol7_optional_latest -y cloud-init

※OL7 では、ol7_latest だけでインストールできるようになっていました。(2017/12)

依存関係により、下記のような RPM がインストールされます。
依存性を解決しました

================================================================================
 Package                   アーキテクチャー
                                  バージョン          リポジトリー         容量
================================================================================
インストール中:
 cloud-init                x86_64 0.7.5-6.0.1.el7     ol7_addons          416 k
依存性関連でのインストールをします:
 PyYAML                    x86_64 3.10-11.el7         ol7_latest          153 k
 audit-libs-python         x86_64 2.6.5-3.el7_3.1     ol7_latest           70 k
 checkpolicy               x86_64 2.5-4.el7           ol7_latest          290 k
 libcgroup                 x86_64 0.41-11.el7         ol7_latest           64 k
 libsemanage-python        x86_64 2.5-5.1.el7_3       ol7_latest          103 k
 libwebp                   x86_64 0.3.0-3.el7         ol7_latest          166 k
 libyaml                   x86_64 0.1.4-11.el7_0      ol7_latest           54 k
 policycoreutils-python    x86_64 2.5-11.0.1.el7_3    ol7_latest          444 k
 python-IPy                noarch 0.75-6.el7          ol7_latest           32 k
 python-backports          x86_64 1.0-8.el7           ol7_latest          5.2 k
 python-backports-ssl_match_hostname
                           noarch 3.4.0.2-4.el7       ol7_latest           11 k
 python-boto               noarch 2.27.0-1.el7        ol7_addons          1.5 M
 python-chardet            noarch 2.2.1-1.el7_1       ol7_latest          226 k
 python-cheetah            x86_64 2.4.1-1.el7         ol7_addons          350 k
 python-jsonpatch          noarch 1.2-2.el7           ol7_addons           14 k
 python-jsonpointer        noarch 1.9-2.el7           ol7_latest           12 k
 python-markdown           noarch 2.0.1-3.1.el7       ol7_addons          116 k
 python-pillow             x86_64 2.0.0-19.gitd1c6db8.el7
                                                      ol7_latest          438 k
 python-prettytable        noarch 0.7.2-1.el7         ol7_addons           36 k
 python-pygments           noarch 1.4-9.el7           ol7_optional_latest 598 k
 python-requests           noarch 2.6.0-1.el7_1       ol7_latest           93 k
 python-setuptools         noarch 0.9.8-4.el7         ol7_latest          396 k
 python-six                noarch 1.9.0-2.el7         ol7_latest           28 k
 python-urllib3            noarch 1.10.2-2.el7_1      ol7_latest           99 k
 setools-libs              x86_64 3.3.8-1.1.el7       ol7_latest          611 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+25 個の依存関係のパッケージ)

総ダウンロード容量: 6.2 M
インストール容量: 27 M

デフォルトの cloud.cfg ファイルの内容です。
[root@vm02 ~]# cat /etc/cloud/cloud.cfg
users:
 - default

disable_root: 1
ssh_pwauth:   0

mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
resize_rootfs_tmp: /dev
ssh_deletekeys:   0
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: cloud-user
    lock_passwd: true
    gecos: Oracle Linux Cloud User
    groups: [wheel, adm, systemd-journal]
    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

「ssh_pwauth: 0」も入っているので、このまま cloud-init を実行したり、
OS を再起動したりすると /etc/ssh/sshd_config が「PasswordAuthentication no」に変更されて
SSH でパスワードログインできなくなるので要注意です。

動作確認でいろいろ試行錯誤したいような場合でも、ちゃんとログイン用に証明書を仕込むか、
インストール直後に SSH のパスワードログインを有効化(ssh_pwauth: 1)
しておくとよいかもしれません。
[root@vm02 ~]# sed -i "s/ssh_pwauth:.*/ssh_pwauth: 1/g" /etc/cloud/cloud.cfg

ただ、Oracle Linux 7 で cloud-init を利用するような場合は、Oracle Software Delivery Cloud で
Oracle Linux 7 Virtual Machine Image for Openstack が提供されているので、
そちらを利用してもよいかもしれません。

Oracle Software Delivery Cloud
https://edelivery.oracle.com/

現時点では、OL 7.2 と OL 7.3 のイメージが提供されています。
  • Oracle Linux 7.2 Virtual Machine Image for OpenStack
    V138088-01.zip 393.1 MB
  • Oracle Linux 7.3 Virtual Machine Image for OpenStack
    V860533-01.zip 571.1 MB

以上、OL7 に cloud-init をインストールする話でした。

0 件のコメント:

コメントを投稿