针对dib制作的deploy image,注入密码有两种方式: devuser/dynamic-login 1、对应 dib 添加密码,是通过 dynamic-login element 来完成的。 首先制作带 dynamic-login 的映像: disk-image-create ironic-agent centos7 dynamic-login -o ironic-deploy centos7 可换为fedora或者ubuntu dynamic-login 的原理是在系统里起一个 dynamic-login 服务,在系统 上电时,解析 /proc/cmdline 里的参数,如果用户传了 rootpwd 或者 sshkey, 则写到对应的文件中,这样用户就可以登录系统了。 dynamic-login 使用的是密文,我们可以使用 openssl 生产密码: $ openssl passwd Password: Verifying - Password: mNw2hVHmny2Ho 然后我们把在 /etc/ironic/ironic.conf 添加我们的密码: $ cat /etc/ironic/ironic.conf [pxe] pxe_append_params = rootpwd="mNw2hVHmny2Ho" 如果使用 ssh 方式登录,则添加 sshkey $ cat ~/.ssh/id_rsa.pub # 添加 sshkey="<your_sshkey>" $ cat /etc/ironic/ironic.conf [pxe] pxe_append_params = sshkey="" 2、devuser 这种方式一般在测试时使用,在正式环境中不推荐使用。原理是在制作镜像的时候,通过环境变量注入密码,然后diskimage-builder在做镜像的时候把密码写进去。 export DIB_DEV_USER_USERNAME=username export DIB_DEV_USER_PWDLESS_SUDO=yes export DIB_DEV_USER_AUTHORIZED_KEYS=$HOME/.ssh/id_rsa.pub disk-image-create -o ironic-deploy ubuntu ironic-agent devuser 重启服务 systemctl restart ironic-* ssh root@node_ip 参考: https://docs.openstack.org/diskimage-builder/latest/elements/dynamic-login/README.html https://leetpy.github.io/2017/04/04/ironic%E9%95%9C%E5%83%8F%E5%88%B6%E4%BD%9C/ http://ironic-book.readthedocs.io/zh_CN/latest/ironic/images.html#deploy
但谈何容易。