Siyuan's Blog

  • 首页

  • 归档

  • 标签

  • 搜索

使用 Reprepro 构建自己的 APT 仓库

发表于 2013-09-02 | 更新于 2014-06-07 |

最近使用 Puppet 的过程中,发现用 dpkg 做 Package 的 Provider 时总是会在报告里留下 ensure changed 'purged' to 'present' 这样子的日志,即使这个包已经被安装过了还是如此。

于是我的 Foreman 就被这样的日志强暴了三天。。。

Snip20130903_16.png

问了下 Eric 酱,好像只能自建 APT 仓库了,Debian 官方的 Wiki 里有好多种建立 APT 仓库的工具。
这里我使用 reprepro,功能足够,设置简单,嗯,就它了。

安装 Reprepro

1
apt-get install -y reprepro

配置 Reprepro

首先呢,创建一个文件夹来存放你的仓库咯,我放在 /data/repo/ 这个目录。

1
mkdir -p /data/repo/conf

然后需要创建 distributions 这个文件用来标识发行版,我管理的机器主要有三个发行版,以下的内容按自己实际情况修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Origin: Aveline Swan
Label: aveline
Suite: precise
Codename: precise
Version: 12.04
Architectures: i386 amd64
Components: main
Description: Packages for Aveline Swan

Origin: Aveline Swan
Label: aveline
Suite: squeeze
Codename: squeeze
Version: 6.0
Architectures: i386 amd64
Components: main
Description: Packages for Aveline Swan

Origin: Aveline Swan
Label: aveline
Suite: wheezy
Codename: wheezy
Version: 7.0
Architectures: i386 amd64
Components: main
Description: Packages for Aveline Swan

添加包

在 /data/repo 这个目录执行 reprepro includedeb 发行版 deb包位置 命令添加既可。

设置 Web 服务

这里我直接使用了 nginx,配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name apt.swan.im;

location / {
root /home/apt;
autoindex on;
}

location /conf {
return 403;
}
}

添加 APT 仓库到服务器

在 Puppet Master 上执行 puppet module install puppetlabs/apt 安装 apt 模块。

然后在 site.pp 里添加

1
2
3
4
5
6
7
include apt

apt::source { 'swan':
location => 'http://apt.swan.im',
repos => 'main',
include_src=> false
}

如果你的仓库里不包含源码的话,记得要把 include_src 这个设置为 false,不然会报错。

New DNS Service

发表于 2013-08-11 | 更新于 2014-06-07 |

一直有感於沒有足夠好用的 DNS 服務,於是自己寫了一個。

DNSPod 免費版限制太多收費版還是不夠好玩兒,Amazon Route53 的 Latency-Based 記錄也如同雞肋,完全起不到 GeoIP 的作用,至於 Dyn … 呃好吧這家比較贊但是我還是喜歡自己折騰一下XD

介紹一下架構:

DNS 基於 PowerDNS + NodeJS + MySQL,一共用了 18 + 2 + 2 台 VPS,DNS 節點內存均爲 1G。

其中 14 台是 AnyCast DNS,對外只用一個 IP,不過從監控來看好像只有幾個節點比較忙其他幾個都好冷清,感覺好浪費 :-( 使用率太低以及服務商響應速度不理想,已經下線

另外 4 台是 UniCast DNS。

  • DigitalOcean San Francisco Datacenter (ns1)
  • 美團開放服務 北京數字北京機房(ns2)
  • Nlayer Los Angeles Datacenter (ns3)
  • ChinaCache 北京順義海航機房 (ns4)

另外還有兩臺跑 Portal 和 API,和數據庫在同一個機房不過爲了保證被攻擊時被誤傷所以沒有放在同一臺機器上嗯。

至於 GeoDNS,我使用的是 MaxMind 的 GeoLite 庫和由魔熊維護的 SinaIP 庫來解析地址。

系統已經上線快一週了,運行正常,求壓力測試。

貼一張狀態照。

QQ20130812-1.png

吖,對了另外提供個小工具,可以通過 dig 來查詢自己的 IP 地址什麼的:
需要注意一下裏面的 TXT 記錄是用 Punycode 編碼過的。

1
2
3
4
5
6
7
8
# 查詢 IP 地址
dig ip.noquery A @ns1.noquery.net
# 查詢 IP 所屬組織
dig organization.geoip.engine.noquery TXT @ns1.noquery.net
# 查詢 IP 所在城市信息
dig city.geoip.engine.noquery TXT @ns1.noquery.net
# 查詢 IP 所在國家信息
dig country.geoip.engine.noquery TXT @ns1.noquery.net

'新浪气象站'

发表于 2013-07-13 |

前几天在鱼老师的微博里看到一条卖萌微博然后发现了这个好玩儿的东西,看着不算贵就入了俩。

作为一个已经叛星的不折腾会死星人,拿个 Arduino 或者 Raspberry Pi 来自己做一个这种事我是再也不会做了,折腾下来的成本至少得 300 左右,不过这货只要 199 吖,果然量产的东西就是便宜。

嘛,那就来个 … 开箱盒报告吧。

2013-07-14 12.23.41 HDR.jpg

打开盒子从上到下从左到右依次是

  • 室内机电源线
  • 固定用螺丝和螺丝起子
  • 室外机
  • 室内机
  • 固定用 3M 双面胶带一块

2013-07-14 12.26.06 HDR.jpg

安装的话挺方便的,在 App Store 里下好新浪气象站的应用按着操作来就是了。

设置 Wi-Fi 的时候会要求连接以 Sina- 开头的一个 Wi-Fi 热点,连上之后会弹出一个窗口要求设置 Wi-Fi,设置完了这个热点就会消失了,这里顺便吐槽下 Cisco 的家用路由器 (CVR100W) 真是烂到爆,居然 … 第一次用 Cisco 的热点连不上去,然后无奈之下用 TP-LINK (WR340G) 的热点连居然连上了。

接下来是室外机,直接用附带的起子打开后盖拔出电池仓的压仓片就可以了,完成后室外机的 LCD 屏会有显示度数。

安装室外机的时候遇到了点儿小麻烦,由于一时二逼直接把 3M 的双面胶贴墙上了,呃,准确的说是贴在了墙上的灰尘上,然后现在是用透明胶带贴在了空调室外机上,应该暂时掉不下来。 :-D

嘛,这个就是新浪气象站的 App 啦。呃所需要注意的呢以下数据是非实时获取的,想要看实时数据呢得去室内机看。

另外这里面的 PM 2.5 是从新浪天气获取的数据,不是室外机获取的。

2013-07-14 12.54.49.png

2013-07-14 12.27.29 HDR.jpg

1…678…12

Siyuan Miao

35 日志
42 标签
GitHub Twitter
© 2018 Siyuan Miao
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Mist v6.3.0