无人值守安装Suse时如何使用autoyast安装外部包?
How to use autoyast to install an external package while installing Suse unattended?
最近正在学习如何使用autoyast通过pxe通过网络无人值守安装SUSE。
我的目标是--
- 用pxe无人值守安装Suse12.4 -- 我用autoyast.xml和pxe
成功了
- 安装不仅要安装Suse,还需要安装一些外部包-- 比如。 rlwrap 和 puppet 客户端...
按照 https://documentation.suse.com/sles/12-SP4/html/SLES-all/configuration.html#CreateProfile-Software -- 在第 4.9.2 节中的步骤进行操作
所以我只用 rlwrap 包做了一个测试,这是我的步骤--
- 因为我的存储库是 http://192.168.95.77/12.4, so I copied rlwrap-0.43-lp152.3.8.x86_64.rpm to http://192.168.95.77/12.4/suse/x86_64 并确保它可以从 http.
- 然后我修改了我的autoyast.xml在文件末尾添加这个--
**
<add-on>
<add_on_products config:type="list">
<listentry>
<media_url>http://192.168.95.77/12.4/suse/x86_64/rlwrap-0.43-lp152.3.8.x86_64.rpm</media_url>
<product>rlwrap</product>
<alias>rlwrap</alias>
<product_dir></product_dir>
<priority config:type="integer">99</priority>
<ask_on_error config:type="boolean">false</ask_on_error>
<confirm_license config:type="boolean">false</confirm_license>
<name>eisen-repo-12.4</name>
</listentry>
</add_on_products>
</add-on>
**
然后我用新的虚拟机测试, -- 然后我发现这台虚拟机再次成功安装了Suse12.4,但是没有安装那个rlwrap包,安装时也没有发现错误信息。
我不知道我哪里错了。请指正我。在此先感谢您的帮助。
问候
艾森
找到解决方案 -- autoyast.xml 中的 init.sh 部分可以解决。
我是这样写的--
<scripts>
<init-scripts config:type="list">
<script>
<debug config:type="boolean">true</debug>
<feedback config:type="boolean">false</feedback>
<filename>init.sh</filename>
<interpreter>shell</interpreter>
<location><![CDATA[]]></location>
<notification>customer initialization</notification>
<source><![CDATA[
#!/bin/bash
touch /tmp/flag
rpm --import http://192.168.95.77/puppet7/repodata/repomd.xml.key 2>&1 >> /tmp/flag
zypper addrepo -f http://192.168.95.77/puppet7 eisen-repo-puppet7 2>&1 >> /tmp/flag
zypper install -y rlwrap 2>&1 >> /tmp/flag
zypper install -y puppet-agent 2>&1 >> /tmp/flag
]]></source>
</script>
</init-scripts>
</scripts>
至此第三方包安装成功
最近正在学习如何使用autoyast通过pxe通过网络无人值守安装SUSE。 我的目标是--
- 用pxe无人值守安装Suse12.4 -- 我用autoyast.xml和pxe 成功了
- 安装不仅要安装Suse,还需要安装一些外部包-- 比如。 rlwrap 和 puppet 客户端... 按照 https://documentation.suse.com/sles/12-SP4/html/SLES-all/configuration.html#CreateProfile-Software -- 在第 4.9.2 节中的步骤进行操作 所以我只用 rlwrap 包做了一个测试,这是我的步骤--
- 因为我的存储库是 http://192.168.95.77/12.4, so I copied rlwrap-0.43-lp152.3.8.x86_64.rpm to http://192.168.95.77/12.4/suse/x86_64 并确保它可以从 http.
- 然后我修改了我的autoyast.xml在文件末尾添加这个--
**
<add-on>
<add_on_products config:type="list">
<listentry>
<media_url>http://192.168.95.77/12.4/suse/x86_64/rlwrap-0.43-lp152.3.8.x86_64.rpm</media_url>
<product>rlwrap</product>
<alias>rlwrap</alias>
<product_dir></product_dir>
<priority config:type="integer">99</priority>
<ask_on_error config:type="boolean">false</ask_on_error>
<confirm_license config:type="boolean">false</confirm_license>
<name>eisen-repo-12.4</name>
</listentry>
</add_on_products>
</add-on>
**
然后我用新的虚拟机测试, -- 然后我发现这台虚拟机再次成功安装了Suse12.4,但是没有安装那个rlwrap包,安装时也没有发现错误信息。 我不知道我哪里错了。请指正我。在此先感谢您的帮助。
问候 艾森
找到解决方案 -- autoyast.xml 中的 init.sh 部分可以解决。 我是这样写的--
<scripts>
<init-scripts config:type="list">
<script>
<debug config:type="boolean">true</debug>
<feedback config:type="boolean">false</feedback>
<filename>init.sh</filename>
<interpreter>shell</interpreter>
<location><![CDATA[]]></location>
<notification>customer initialization</notification>
<source><![CDATA[
#!/bin/bash
touch /tmp/flag
rpm --import http://192.168.95.77/puppet7/repodata/repomd.xml.key 2>&1 >> /tmp/flag
zypper addrepo -f http://192.168.95.77/puppet7 eisen-repo-puppet7 2>&1 >> /tmp/flag
zypper install -y rlwrap 2>&1 >> /tmp/flag
zypper install -y puppet-agent 2>&1 >> /tmp/flag
]]></source>
</script>
</init-scripts>
</scripts>
至此第三方包安装成功