使用Preseed在/etc/apt/sources.list中设置镜像

时间:2014-10-05 07:51:52

标签: debian apt packer

我想自动创建我的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

我为每个建议感到高兴。

1 个答案:

答案 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的内容,但这个解决方案对我有用。