我想自动创建我的Debian图像。
使用Packer 0.7.1和Preseed到目前为止一直运行良好,我唯一无法做到的是/etc/apt/sources.list
的内容。
我希望它是这样的:
deb http://http.debian.net/debian wheezy main
deb-src http://http.debian.net/debian wheezy main
deb http://http.debian.net/debian wheezy-updates main
deb-src http://http.debian.net/debian wheezy-updates main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
使用我当前的脚本,我只能获得最后两行,这些行不足以通过apt-get install
安装软件。
这就是我尝试在我的preseed_wheezy.cfg
中设置镜像和apt的方式:
### Mirror settings
d-i mirror/country string manual
d-i mirror/http/hostname string http.debian.net
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
d-i mirror/suite string wheezy
### Apt setup
d-i apt-setup/use_mirror boolean true
d-i apt-setup/hostname string http.debian.net
d-i apt-setup/directory string /debian/
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
d-i apt-setup/security-updates boolean true
d-i apt-setup/security-updates-fail string security.debian.org
apt-mirror-setup apt-setup/use_mirror boolean true
apt-mirror-setup mirror/http/hostname string http.debian.net
apt-mirror-setup apt-setup/contrib boolean true
apt-mirror-setup apt-setup/non-free boolean true
此外,这是我的packer JSON file和完整的preseed_wheezy.cfg。
我为每个建议感到高兴。
答案 0 :(得分:1)
作为一种解决方法,这是我通过Packer .json文件配置sources.list
的方式:
{
"type": "shell",
"execute_command": "echo '{{user `ssh_pass`}}' | {{ .Vars }} sudo -E -S sh '{{ .Path }}'",
"inline": [
"echo deb http://security.debian.org/ wheezy/updates main > /etc/apt/sources.list",
"echo deb http://http.debian.net/debian wheezy main >> /etc/apt/sources.list",
"echo deb http://http.debian.net/debian wheezy-updates main >> /etc/apt/sources.list",
"apt-get update" ,
"apt-get install python-pip python-dev git -y",
"pip install PyYAML jinja2 paramiko httplib2",
"pip install ansible",
]
},
虽然我没有让Preseed设置sources.list
的内容,但这个解决方案对我有用。