mirror of
https://pagure.io/fedora-infra/ansible.git
synced 2026-02-03 13:13:22 +08:00
Compare commits
1210 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fc4efe824 | ||
|
|
72f327b1dd | ||
|
|
e78f2428bd | ||
|
|
2996177350 | ||
|
|
6a2ff13321 | ||
|
|
c76f5b8c66 | ||
|
|
c3a5f73b6a | ||
|
|
cebefb9ad1 | ||
|
|
cfdba2b43b | ||
|
|
7d904a3693 | ||
|
|
75a68ab596 | ||
|
|
c6e71f899a | ||
|
|
3cf121fd11 | ||
|
|
3c4dc7fdbe | ||
|
|
9af221956a | ||
|
|
9b8cbe9780 | ||
|
|
5ca8240091 | ||
|
|
d63857dbc9 | ||
|
|
dab647e6ba | ||
|
|
1b19b5e7e3 | ||
|
|
d4a4c0a8c6 | ||
|
|
f5ff614091 | ||
|
|
15a4966388 | ||
|
|
510973e1cd | ||
|
|
0b54cd4623 | ||
|
|
187b690d73 | ||
|
|
1b875b543f | ||
|
|
fc0631df17 | ||
|
|
980ba44c59 | ||
|
|
ddb56522fb | ||
|
|
4d7c868992 | ||
|
|
64ecf0e3d6 | ||
|
|
417152c1e4 | ||
|
|
93c19c2c15 | ||
|
|
f0c436ffae | ||
|
|
e0e32549ff | ||
|
|
e352bce2b5 | ||
|
|
a62df97226 | ||
|
|
dcf9a500dc | ||
|
|
a17ece53c6 | ||
|
|
798c1e0f5e | ||
|
|
ad28ec6b08 | ||
|
|
efb59e9f60 | ||
|
|
40a3a9381b | ||
|
|
81acc097a6 | ||
|
|
9601a54691 | ||
|
|
b109b8214c | ||
|
|
2966e0e5c1 | ||
|
|
ec5cdb299d | ||
|
|
0cb68445f4 | ||
|
|
e73bce104f | ||
|
|
989f42018a | ||
|
|
fc78e7cad5 | ||
|
|
75260593b2 | ||
|
|
6683f7768b | ||
|
|
b4288cd9d3 | ||
|
|
48ed2666c8 | ||
|
|
5d29bc1345 | ||
|
|
f3cc32e50e | ||
|
|
c80775684e | ||
|
|
4eaaaccb57 | ||
|
|
253a86f410 | ||
|
|
fefc75b3d1 | ||
|
|
b19c53d31c | ||
|
|
2d93c017e0 | ||
|
|
09061fb7cb | ||
|
|
b5695062c3 | ||
|
|
769efe6ab8 | ||
|
|
7dc3900f4c | ||
|
|
87c60aa4cb | ||
|
|
03394a1591 | ||
|
|
d903e76839 | ||
|
|
b7060c4f29 | ||
|
|
466b5c4766 | ||
|
|
01f14e4619 | ||
|
|
02fbe41f0e | ||
|
|
cd5b9dd331 | ||
|
|
dc701de264 | ||
|
|
ae53fe801e | ||
|
|
cae3b20c6e | ||
|
|
92b5026916 | ||
|
|
3e3e4e45c3 | ||
|
|
cf203246cf | ||
|
|
f8b435c912 | ||
|
|
04a8e4a7c8 | ||
|
|
392ee5a552 | ||
|
|
9abd23ce3b | ||
|
|
e7239cb2f0 | ||
|
|
393b32872d | ||
|
|
927f04759f | ||
|
|
5b7b9595b2 | ||
|
|
3c4b6f911c | ||
|
|
3df290581e | ||
|
|
094f81da8c | ||
|
|
63092472d0 | ||
|
|
f26437b1f1 | ||
|
|
c1bd6a1c66 | ||
|
|
51a4bc5498 | ||
|
|
a0a41c33a8 | ||
|
|
e43e7b564b | ||
|
|
b152789b19 | ||
|
|
ca9e882b21 | ||
|
|
e3dc33b618 | ||
|
|
fce243ad3a | ||
|
|
f9394aeb70 | ||
|
|
881cd2a35c | ||
|
|
9ad1edf9dd | ||
|
|
86b93efb5e | ||
|
|
ef7ed004ab | ||
|
|
315fb71922 | ||
|
|
250c7e921c | ||
|
|
c664301bd7 | ||
|
|
878152cbeb | ||
|
|
4038277568 | ||
|
|
de4c5f6d3c | ||
|
|
00acd2a211 | ||
|
|
9dc037d36e | ||
|
|
54d9911f91 | ||
|
|
6eb8225f04 | ||
|
|
c6911d8699 | ||
|
|
253c99a2d8 | ||
|
|
f03b006ce8 | ||
|
|
ca7a14d04a | ||
|
|
5912f8b204 | ||
|
|
1dd4281772 | ||
|
|
749c6b9930 | ||
|
|
64cd952dac | ||
|
|
83c31d8487 | ||
|
|
3f8e31d61a | ||
|
|
d9b48ab356 | ||
|
|
faf7ba49d9 | ||
|
|
b77a905a91 | ||
|
|
d02bcdc3b9 | ||
|
|
ea6c98fcf0 | ||
|
|
72b18e1951 | ||
|
|
4b942afaf9 | ||
|
|
1c64975234 | ||
|
|
e2ac4fe440 | ||
|
|
b52b740104 | ||
|
|
d9ef700395 | ||
|
|
7d4804ea50 | ||
|
|
308bc82719 | ||
|
|
7198cc27a5 | ||
|
|
d95ad3e069 | ||
|
|
86ee70934f | ||
|
|
a8ac414ab5 | ||
|
|
ce990461f9 | ||
|
|
2b7198bd76 | ||
|
|
03a1ca0abd | ||
|
|
f327ef20c5 | ||
|
|
0f7714cb1b | ||
|
|
cb5db8c149 | ||
|
|
a29a44b87e | ||
|
|
3a0703ad54 | ||
|
|
38fae33b5d | ||
|
|
9c3287314b | ||
|
|
cfe9665a68 | ||
|
|
cbe4eb0e1c | ||
|
|
f1001050a4 | ||
|
|
37d085b24f | ||
|
|
faaa683e40 | ||
|
|
aa91fc61bb | ||
|
|
3f8111283a | ||
|
|
e424c4c5a0 | ||
|
|
ea8147c1d0 | ||
|
|
554e8caa74 | ||
|
|
b7f463b041 | ||
|
|
b7cef497a0 | ||
|
|
6c3275fc84 | ||
|
|
de4b5bf97f | ||
|
|
c3552250af | ||
|
|
7d5aa7afe8 | ||
|
|
c6c96c57bb | ||
|
|
7011ce0e14 | ||
|
|
d8f1b5b886 | ||
|
|
eae98a55da | ||
|
|
70fdcdc594 | ||
|
|
db7116ca33 | ||
|
|
2fa4233e67 | ||
|
|
e5fe0ff6d9 | ||
|
|
280c773ae7 | ||
|
|
06990b2234 | ||
|
|
d032393f52 | ||
|
|
167e776d36 | ||
|
|
1bc4c1a406 | ||
|
|
0b30787631 | ||
|
|
75799a5f32 | ||
|
|
ff73e633e8 | ||
|
|
c983f6202b | ||
|
|
f38b34d8c4 | ||
|
|
e462a294ec | ||
|
|
b070ef772b | ||
|
|
3de2b17204 | ||
|
|
8a61b7791a | ||
|
|
55b08d5a52 | ||
|
|
00de58c594 | ||
|
|
5dcb09537d | ||
|
|
77c7ea987f | ||
|
|
902afe8a72 | ||
|
|
cddcb75d84 | ||
|
|
d2ba50fc29 | ||
|
|
6e4e48d8b3 | ||
|
|
7dc5b9151e | ||
|
|
d2ea2b1e63 | ||
|
|
417471d978 | ||
|
|
25e545ed5d | ||
|
|
15503efdc9 | ||
|
|
e9faa5079e | ||
|
|
234f2825be | ||
|
|
1d85587606 | ||
|
|
da287c5f1c | ||
|
|
578365bc34 | ||
|
|
a941b10d63 | ||
|
|
ecf064d030 | ||
|
|
2caf90aed2 | ||
|
|
5ab222ea2a | ||
|
|
d4ca13001a | ||
|
|
42c77051f4 | ||
|
|
b64262922c | ||
|
|
159115f3d3 | ||
|
|
999677b572 | ||
|
|
d83256b106 | ||
|
|
4a9ee86575 | ||
|
|
438aca0049 | ||
|
|
3325113b5e | ||
|
|
0768a03c57 | ||
|
|
7fa2e11fa5 | ||
|
|
15f596183f | ||
|
|
203aff15b9 | ||
|
|
5ee49f57fb | ||
|
|
16f3769117 | ||
|
|
8baa7720e7 | ||
|
|
274d7993ce | ||
|
|
7da961cc1c | ||
|
|
4effa2c2c0 | ||
|
|
789e1d7814 | ||
|
|
f33ed0f4fc | ||
|
|
99286867db | ||
|
|
1ca4f5ed0d | ||
|
|
ed9133b7c0 | ||
|
|
f1aa4ab7c1 | ||
|
|
3dad76a61e | ||
|
|
14dc12d5c9 | ||
|
|
eb66da624b | ||
|
|
091a117c4f | ||
|
|
e05439c3c6 | ||
|
|
79773578b5 | ||
|
|
68be0f0f3c | ||
|
|
5e73d51832 | ||
|
|
7461ae9870 | ||
|
|
46e456de79 | ||
|
|
b02fc093b2 | ||
|
|
28c71b2501 | ||
|
|
1a7fefbe68 | ||
|
|
f2799983ec | ||
|
|
f1e5089967 | ||
|
|
1ec4410d43 | ||
|
|
0c3a84f841 | ||
|
|
18a98f6ed1 | ||
|
|
e1b2563940 | ||
|
|
cf270b1f6e | ||
|
|
4ce16944b9 | ||
|
|
2d9e1d1f10 | ||
|
|
5dd9b5f4a9 | ||
|
|
0542974bab | ||
|
|
9d77ed603e | ||
|
|
9c0addf17c | ||
|
|
3dbc402ec4 | ||
|
|
0844a05bf0 | ||
|
|
899cff9492 | ||
|
|
0f3395189e | ||
|
|
fd6119bd4d | ||
|
|
dfa9e5339e | ||
|
|
d17fd8236a | ||
|
|
31a46523a1 | ||
|
|
588722a9e8 | ||
|
|
de9c00f1ba | ||
|
|
03be7b46c9 | ||
|
|
54d88840d5 | ||
|
|
d6afd943b2 | ||
|
|
060f9f2eb9 | ||
|
|
b7ff972cbd | ||
|
|
0494a018a6 | ||
|
|
083b631c29 | ||
|
|
49c42fc8b2 | ||
|
|
79bd4c3a21 | ||
|
|
389600314b | ||
|
|
4e127e63ed | ||
|
|
76eb4b0f04 | ||
|
|
76951c0b1d | ||
|
|
89a74383d7 | ||
|
|
324721e3f3 | ||
|
|
3b179a2ce6 | ||
|
|
d40a72f7f5 | ||
|
|
75d3b045fc | ||
|
|
1a791a6e0e | ||
|
|
58b8b85ef0 | ||
|
|
206ed3f776 | ||
|
|
406474a374 | ||
|
|
dfbd43862b | ||
|
|
de1c4695d4 | ||
|
|
3b4edc4ade | ||
|
|
a692918cbb | ||
|
|
957851378e | ||
|
|
18ec0ff132 | ||
|
|
1a1f1fb2ca | ||
|
|
5a58c171f8 | ||
|
|
474fef8661 | ||
|
|
ffcff93ce8 | ||
|
|
dfd57eb6ce | ||
|
|
95f02d8990 | ||
|
|
72e1714301 | ||
|
|
ec955a7b2e | ||
|
|
c323027b81 | ||
|
|
782e80bc50 | ||
|
|
b4ea2a7bcd | ||
|
|
ea1dc27076 | ||
|
|
7c40bb7e8a | ||
|
|
693f1ca2d0 | ||
|
|
2e909f8205 | ||
|
|
821aae5366 | ||
|
|
3a196043c6 | ||
|
|
c47880a60f | ||
|
|
da98f8f0f3 | ||
|
|
7b8a7104bf | ||
|
|
9457dd2760 | ||
|
|
e6c2d426b3 | ||
|
|
dce6baa832 | ||
|
|
1dc3f79b86 | ||
|
|
116e7006ec | ||
|
|
dbe1e5df67 | ||
|
|
023eded377 | ||
|
|
e5aad94914 | ||
|
|
51024371d3 | ||
|
|
2ef37ad740 | ||
|
|
697b3eddb7 | ||
|
|
fd38240f90 | ||
|
|
2e2100319f | ||
|
|
193d5c8337 | ||
|
|
2bf861fb4d | ||
|
|
7b38b40873 | ||
|
|
935277bfea | ||
|
|
55a3e42c62 | ||
|
|
f2f2093bd2 | ||
|
|
785ce4ff87 | ||
|
|
6822f97cda | ||
|
|
52f4cbe590 | ||
|
|
dfcac4ffa6 | ||
|
|
56cde2b40a | ||
|
|
7f257b854d | ||
|
|
1fd81df74a | ||
|
|
429725e69e | ||
|
|
48d9ebf522 | ||
|
|
c6852a889a | ||
|
|
a43be7abbb | ||
|
|
e66c937bf5 | ||
|
|
603ea16820 | ||
|
|
34c38adfe0 | ||
|
|
47e672cf38 | ||
|
|
5e51be733b | ||
|
|
13b6d6f85a | ||
|
|
eefdd1b23c | ||
|
|
b2e8e6020a | ||
|
|
17f003db5b | ||
|
|
1f0ee84997 | ||
|
|
805310c8f3 | ||
|
|
7b90a538ea | ||
|
|
25a1b7b53c | ||
|
|
50a49a5378 | ||
|
|
5e61d476e9 | ||
|
|
d022f58e94 | ||
|
|
08b3569ed6 | ||
|
|
b1dfce5353 | ||
|
|
c381898d11 | ||
|
|
ad8b05b155 | ||
|
|
457decc25f | ||
|
|
7b744d074e | ||
|
|
869a1965b3 | ||
|
|
c67dc5f94c | ||
|
|
5e32fe5643 | ||
|
|
a41fb3da66 | ||
|
|
d350b9bc66 | ||
|
|
d15b70251a | ||
|
|
12b88b57a1 | ||
|
|
18100deb21 | ||
|
|
db6fdf9bb0 | ||
|
|
c1a97c4a40 | ||
|
|
62066cdc08 | ||
|
|
ed25d05c43 | ||
|
|
8cc4c30647 | ||
|
|
7a3df53822 | ||
|
|
741ee1ce5f | ||
|
|
b306589264 | ||
|
|
7488893d21 | ||
|
|
c3ed8a0145 | ||
|
|
afb69f368a | ||
|
|
0d1addb56e | ||
|
|
9f3511ff1d | ||
|
|
c14eb4b78f | ||
|
|
2f0c72bf3b | ||
|
|
2511d5ef8b | ||
|
|
4215e7099f | ||
|
|
bc649da212 | ||
|
|
2ec4227667 | ||
|
|
9be90c30bf | ||
|
|
5a9f82f374 | ||
|
|
ec5445bf17 | ||
|
|
a189e3c9c2 | ||
|
|
ad5da94197 | ||
|
|
7e3d5a3062 | ||
|
|
026a6f8919 | ||
|
|
c9e3508451 | ||
|
|
38c8cc5553 | ||
|
|
835b45100a | ||
|
|
6155d32d7d | ||
|
|
b9ff6d133d | ||
|
|
0953ea5efa | ||
|
|
136866729f | ||
|
|
a97ce78813 | ||
|
|
a44d82f494 | ||
|
|
2718b39cba | ||
|
|
ea1cf51810 | ||
|
|
b5207ad26d | ||
|
|
c377d22903 | ||
|
|
fc61ec5770 | ||
|
|
803cc22ef7 | ||
|
|
ab21a8dc9f | ||
|
|
9dc34181ba | ||
|
|
18ae748d02 | ||
|
|
cc7c6d6b09 | ||
|
|
a06d5544bd | ||
|
|
c8ad333687 | ||
|
|
e53ee4327f | ||
|
|
6b04cd0a7f | ||
|
|
740ce5dc7c | ||
|
|
3631e708b8 | ||
|
|
134572d9cc | ||
|
|
f3ef23eebf | ||
|
|
2389fa4bea | ||
|
|
688d37edfe | ||
|
|
e1b50b3a35 | ||
|
|
041fc44463 | ||
|
|
bf99a15cb0 | ||
|
|
e2c77afff8 | ||
|
|
cd10ff31da | ||
|
|
d9f4c98b8d | ||
|
|
3ba97ea0be | ||
|
|
50a046f114 | ||
|
|
e408633b86 | ||
|
|
e8da1a05a0 | ||
|
|
a6ea02adc1 | ||
|
|
d5cd46afde | ||
|
|
9d903a70f1 | ||
|
|
c45f1781cd | ||
|
|
b563090860 | ||
|
|
dd4aa27279 | ||
|
|
2e957cf3db | ||
|
|
1b8e616ad4 | ||
|
|
b929678ff1 | ||
|
|
16b0f71f3a | ||
|
|
67bc3b4920 | ||
|
|
86fff66e19 | ||
|
|
7fdc2ab99b | ||
|
|
f35f4d1b5d | ||
|
|
b6e8baff43 | ||
|
|
e0f417425f | ||
|
|
7ca9dcb3af | ||
|
|
ecf8920ade | ||
|
|
e286673702 | ||
|
|
b5cdb8576e | ||
|
|
131c180dc8 | ||
|
|
27f614f9fe | ||
|
|
7e79ed0c8e | ||
|
|
747eff6066 | ||
|
|
136810fe96 | ||
|
|
a356dd16eb | ||
|
|
7d0c6432af | ||
|
|
4bd90f8e28 | ||
|
|
d507b1e116 | ||
|
|
79a0601421 | ||
|
|
342a22a5a3 | ||
|
|
b25c32c5da | ||
|
|
063f293ba8 | ||
|
|
72478b0264 | ||
|
|
4af3a2ec32 | ||
|
|
aa37f25b54 | ||
|
|
1cb3f6ea7c | ||
|
|
448b0bceb7 | ||
|
|
cbec442404 | ||
|
|
3c41b15f12 | ||
|
|
af5c168225 | ||
|
|
906159139e | ||
|
|
97d6175943 | ||
|
|
ee076869ff | ||
|
|
a974723992 | ||
|
|
b30d7946c0 | ||
|
|
1889fb51ff | ||
|
|
2fe69599f5 | ||
|
|
f7d56ff2b1 | ||
|
|
d011bbde2c | ||
|
|
14d3f07415 | ||
|
|
8db1d1e0b6 | ||
|
|
1ab8be272c | ||
|
|
d630c3da15 | ||
|
|
763cd06206 | ||
|
|
6f971d8d8f | ||
|
|
bb7dd14696 | ||
|
|
7258e676a6 | ||
|
|
f90a3fbda5 | ||
|
|
3a3c0025cc | ||
|
|
64fa1cd362 | ||
|
|
002135eb99 | ||
|
|
af5aa06684 | ||
|
|
5b4564acd4 | ||
|
|
6059906447 | ||
|
|
5e7d24235d | ||
|
|
e0fae8047a | ||
|
|
1099884833 | ||
|
|
8847d77310 | ||
|
|
773d8960ae | ||
|
|
acf3179581 | ||
|
|
0b6c42dcbf | ||
|
|
ae2df0d7e8 | ||
|
|
96a2ed93d2 | ||
|
|
f16181a2f3 | ||
|
|
faa0561ffb | ||
|
|
efae484554 | ||
|
|
792d904739 | ||
|
|
d13c8a1adf | ||
|
|
9ba0e4ef20 | ||
|
|
a6723c336d | ||
|
|
81437a7caf | ||
|
|
efa041d89d | ||
|
|
0a836bf6af | ||
|
|
a9bc26b963 | ||
|
|
33c3b190a1 | ||
|
|
d3f7fb49ba | ||
|
|
7f78117fea | ||
|
|
a84df969da | ||
|
|
1ab1d5bb38 | ||
|
|
f5c5807cee | ||
|
|
0145714f29 | ||
|
|
bd8f37aa8a | ||
|
|
e0cb3edb43 | ||
|
|
45a09b21ed | ||
|
|
583c0b729d | ||
|
|
325cd11b3d | ||
|
|
7d54eb0775 | ||
|
|
21934951c2 | ||
|
|
68eb24188b | ||
|
|
3687b44a84 | ||
|
|
6c42b2420a | ||
|
|
e22f764ae2 | ||
|
|
5392e2966f | ||
|
|
3ee79e5e24 | ||
|
|
b6c1c67545 | ||
|
|
56d6699804 | ||
|
|
3e20afa366 | ||
|
|
0d4daa0d8c | ||
|
|
1161cb2c64 | ||
|
|
97cca8dab9 | ||
|
|
b4fa4af74a | ||
|
|
77da05b75b | ||
|
|
ddc86bcaf3 | ||
|
|
2acec935fa | ||
|
|
9835360d33 | ||
|
|
173dbbb4b9 | ||
|
|
ef4aba69a0 | ||
|
|
e20ea5e6cc | ||
|
|
e941d65c5e | ||
|
|
dbf61f1fbf | ||
|
|
3ae23a63c5 | ||
|
|
13330ad4eb | ||
|
|
b3f6aa6dac | ||
|
|
c9b28d8981 | ||
|
|
815376cf32 | ||
|
|
c23e9730fc | ||
|
|
c468d67ff7 | ||
|
|
f472d0bcb4 | ||
|
|
41a1de454a | ||
|
|
bc90ec2749 | ||
|
|
ac29c19dd5 | ||
|
|
e5513c242f | ||
|
|
ebae481ad8 | ||
|
|
2e5f6a7404 | ||
|
|
bd1b623111 | ||
|
|
9d36f8a375 | ||
|
|
35a6f991bf | ||
|
|
1e0dda64d1 | ||
|
|
1e07f9075f | ||
|
|
e2cd562825 | ||
|
|
590a669f05 | ||
|
|
13f3afebad | ||
|
|
f2f6f56a98 | ||
|
|
7429218a4b | ||
|
|
68af71f0b4 | ||
|
|
2076a56e79 | ||
|
|
baa241b9de | ||
|
|
4c8643b4eb | ||
|
|
02add69aaf | ||
|
|
27db174cff | ||
|
|
c966c9aaff | ||
|
|
29864b8d57 | ||
|
|
a7350d64a5 | ||
|
|
9017d6c2ff | ||
|
|
0814f8c6f6 | ||
|
|
69a5e8e572 | ||
|
|
4ea8fb7509 | ||
|
|
f0a29df52d | ||
|
|
e18d833494 | ||
|
|
3667001df1 | ||
|
|
0dd87ee096 | ||
|
|
494ec1033e | ||
|
|
f1d4e575f0 | ||
|
|
1043af18d2 | ||
|
|
5e6941493d | ||
|
|
1cb8b9a6e7 | ||
|
|
3d1ae260e5 | ||
|
|
41aa28ceb8 | ||
|
|
9a54539814 | ||
|
|
cf55b4ecad | ||
|
|
4391055257 | ||
|
|
e4cc2e8ba3 | ||
|
|
e94575305b | ||
|
|
d160697c21 | ||
|
|
c165cf7746 | ||
|
|
0e55c85cbf | ||
|
|
5e3dd3803f | ||
|
|
804d2948dd | ||
|
|
07c21f1a16 | ||
|
|
4164ec60b8 | ||
|
|
c53b368450 | ||
|
|
33ddc75b18 | ||
|
|
8462c0407e | ||
|
|
04498829a1 | ||
|
|
fd8d810fda | ||
|
|
682d67a5ad | ||
|
|
2f6fd14d58 | ||
|
|
45932af564 | ||
|
|
6693c72a45 | ||
|
|
82deb4e6ff | ||
|
|
507701dd15 | ||
|
|
4de2ecac8b | ||
|
|
abd631df2b | ||
|
|
01869f4cdb | ||
|
|
48abe3fbbe | ||
|
|
8f46c63f59 | ||
|
|
063550bb38 | ||
|
|
0ef5203ea2 | ||
|
|
04495398e4 | ||
|
|
7bae9777c4 | ||
|
|
71dbd1453b | ||
|
|
76b42846cd | ||
|
|
dfb97356be | ||
|
|
6284895aaf | ||
|
|
7f7882c65f | ||
|
|
2088e559c8 | ||
|
|
a93b1e8204 | ||
|
|
aedf904ccf | ||
|
|
8c1048b8a1 | ||
|
|
d9fa9cd113 | ||
|
|
c07c7e30c7 | ||
|
|
11dffeb8ab | ||
|
|
7ad6d08614 | ||
|
|
ab4fc88277 | ||
|
|
429a3de480 | ||
|
|
3da54da606 | ||
|
|
81b6046710 | ||
|
|
94756d80a9 | ||
|
|
d747341f14 | ||
|
|
9da7b06b8d | ||
|
|
b14f5a4a0b | ||
|
|
66b107d0d5 | ||
|
|
1f96795e5b | ||
|
|
3fc278dadb | ||
|
|
69de001b01 | ||
|
|
7798d5b5c0 | ||
|
|
cecfac8454 | ||
|
|
fe702d32ea | ||
|
|
dd111ea27e | ||
|
|
5dc0a7cdcb | ||
|
|
7123aa80ca | ||
|
|
99f5adf002 | ||
|
|
df81d82756 | ||
|
|
bd75546240 | ||
|
|
f390c09c3f | ||
|
|
4648705142 | ||
|
|
c3097c760c | ||
|
|
85b05e9368 | ||
|
|
b0efbaa648 | ||
|
|
72f06125c9 | ||
|
|
f87358058a | ||
|
|
17ebf01809 | ||
|
|
e3bbd59544 | ||
|
|
f4b462668d | ||
|
|
40d85f141a | ||
|
|
d66182fb66 | ||
|
|
d808f3b70f | ||
|
|
1632b1e855 | ||
|
|
f43489746f | ||
|
|
c5e6012cc7 | ||
|
|
c06416d746 | ||
|
|
13eacb75ab | ||
|
|
8e258ed3c5 | ||
|
|
6a9865150b | ||
|
|
ba9027ef15 | ||
|
|
3e466a7cf3 | ||
|
|
40f480d1aa | ||
|
|
0f804a78de | ||
|
|
0f18e74b42 | ||
|
|
78456d395a | ||
|
|
c5b7657d4d | ||
|
|
12f4c14bf3 | ||
|
|
91ea3da106 | ||
|
|
b54be7e34f | ||
|
|
8bbb60bb4a | ||
|
|
6c162cc357 | ||
|
|
b680031fbe | ||
|
|
5a2089059a | ||
|
|
15d4338a74 | ||
|
|
d3ed2cdf29 | ||
|
|
db4bf82053 | ||
|
|
864048c600 | ||
|
|
664dbb7f79 | ||
|
|
6401b15958 | ||
|
|
1320997020 | ||
|
|
88141db150 | ||
|
|
4c9c64032e | ||
|
|
3353e6dcfe | ||
|
|
ef0816e76b | ||
|
|
bb1a968a5f | ||
|
|
8c8d69be2a | ||
|
|
b959693e2b | ||
|
|
d081700166 | ||
|
|
087a4d3042 | ||
|
|
4550c762a4 | ||
|
|
68f1dcf589 | ||
|
|
02d18fbcb5 | ||
|
|
bd4fef12fc | ||
|
|
5306d96489 | ||
|
|
6b2c0c6c69 | ||
|
|
46646b2b96 | ||
|
|
7a6ede545a | ||
|
|
255b683db1 | ||
|
|
1749b4edf3 | ||
|
|
39d7e899cd | ||
|
|
6f434565fd | ||
|
|
d289b06d37 | ||
|
|
c223eaadd5 | ||
|
|
cb7dee0e9e | ||
|
|
344366a538 | ||
|
|
5264983303 | ||
|
|
8cff41661a | ||
|
|
1b5f78cd49 | ||
|
|
2a1aa83748 | ||
|
|
366ff69c67 | ||
|
|
ee8363b971 | ||
|
|
fa75ca9b35 | ||
|
|
8ab3080dc2 | ||
|
|
7876109563 | ||
|
|
2917423cfa | ||
|
|
966efcc06e | ||
|
|
bc99cf9a48 | ||
|
|
8b7ebbe5d9 | ||
|
|
5ea98d6f9d | ||
|
|
915d874b1b | ||
|
|
c3da3d408c | ||
|
|
0661687464 | ||
|
|
49badcc891 | ||
|
|
3dbdfde65c | ||
|
|
c7eba1f37b | ||
|
|
6e4e1ea554 | ||
|
|
172f73275f | ||
|
|
fa09b80aee | ||
|
|
b9d8de2061 | ||
|
|
545d915207 | ||
|
|
0a63a867c0 | ||
|
|
4c6b323d3e | ||
|
|
29a3b73a70 | ||
|
|
db06546855 | ||
|
|
ebd347f0b0 | ||
|
|
db6c34e8dd | ||
|
|
89214e0649 | ||
|
|
fbcca88364 | ||
|
|
dac6c2b5be | ||
|
|
03dd6b8584 | ||
|
|
aaaed3a018 | ||
|
|
be8d98470b | ||
|
|
2cd3301ed5 | ||
|
|
657502e256 | ||
|
|
5a28c20233 | ||
|
|
8e9bef899e | ||
|
|
86fb4d55a6 | ||
|
|
08b8f89177 | ||
|
|
3be1c20a1e | ||
|
|
fea1853b9c | ||
|
|
106c831ae1 | ||
|
|
a7890c6874 | ||
|
|
c0d3729ce2 | ||
|
|
7a309f3f86 | ||
|
|
d9ae1269d1 | ||
|
|
d897a71e5d | ||
|
|
6c55c0dda0 | ||
|
|
6db6af6afb | ||
|
|
9b97078b2a | ||
|
|
80d5497bdd | ||
|
|
5fe0dc0037 | ||
|
|
99c56cb70d | ||
|
|
5ac9c05154 | ||
|
|
df75244847 | ||
|
|
ca61692776 | ||
|
|
7ffbb98c70 | ||
|
|
0677e06d50 | ||
|
|
a7b83a7f28 | ||
|
|
c50469ade8 | ||
|
|
4dcc5ae689 | ||
|
|
9570a444a3 | ||
|
|
06a239ac71 | ||
|
|
ff67503a15 | ||
|
|
978f481d55 | ||
|
|
55d12dc69b | ||
|
|
078dde5680 | ||
|
|
114ed6a719 | ||
|
|
6b148f50bc | ||
|
|
e1a48e15f7 | ||
|
|
6485c98878 | ||
|
|
1a22da9dc1 | ||
|
|
56b43fde5a | ||
|
|
4c4ad6cefd | ||
|
|
535c634d69 | ||
|
|
46409f50bd | ||
|
|
e2efb2d1d9 | ||
|
|
5452ab5346 | ||
|
|
c17fe661c4 | ||
|
|
c4451ee680 | ||
|
|
442bef15b3 | ||
|
|
6309daa7f5 | ||
|
|
6014e19b6c | ||
|
|
aa248e3d39 | ||
|
|
589f22d45f | ||
|
|
adfc5eaaaf | ||
|
|
b2a1eef7c5 | ||
|
|
19cc07fcdd | ||
|
|
c5de102ff6 | ||
|
|
ca358cf22b | ||
|
|
1a7046f645 | ||
|
|
767cd29c77 | ||
|
|
608b001d39 | ||
|
|
2d9a800f30 | ||
|
|
e2f1495aa9 | ||
|
|
a9b6ef9f11 | ||
|
|
4b699a5675 | ||
|
|
4b8c8951db | ||
|
|
1c4ed1ee9c | ||
|
|
1f79455783 | ||
|
|
a25767a969 | ||
|
|
fdf1217f48 | ||
|
|
965e506f47 | ||
|
|
9245c6534f | ||
|
|
2394bfe6cc | ||
|
|
48e5075d85 | ||
|
|
54d4135670 | ||
|
|
86bd1bc69a | ||
|
|
e6025b6e8c | ||
|
|
612f2ac42f | ||
|
|
6b9c8d954a | ||
|
|
7e60bb96b0 | ||
|
|
be8a1cbb7a | ||
|
|
45495effe2 | ||
|
|
dbb59048db | ||
|
|
363160651e | ||
|
|
d5171f3d50 | ||
|
|
07afa13b9d | ||
|
|
2f2ab18e4c | ||
|
|
57cc4905f7 | ||
|
|
59eb33e493 | ||
|
|
5b86013c07 | ||
|
|
524695d103 | ||
|
|
122769c32b | ||
|
|
26c566750d | ||
|
|
141d91c73f | ||
|
|
3b9d3d2661 | ||
|
|
44f3fc4bf7 | ||
|
|
21cdce6765 | ||
|
|
0115f9afdc | ||
|
|
bf107cb007 | ||
|
|
8cb07e13e2 | ||
|
|
a2d790628c | ||
|
|
6e4809fb1d | ||
|
|
cdfcf93ce7 | ||
|
|
1f86fbdd29 | ||
|
|
f81b71ea60 | ||
|
|
25d246b1af | ||
|
|
e0c98e96dd | ||
|
|
aa2706c10e | ||
|
|
5ed8f2342f | ||
|
|
73ccae5323 | ||
|
|
370aa99701 | ||
|
|
21f006b86a | ||
|
|
fd28ce82b7 | ||
|
|
ac7ccee552 | ||
|
|
990dd0ada0 | ||
|
|
b876460607 | ||
|
|
e2fb4d7cac | ||
|
|
c3674065e1 | ||
|
|
ffcbe72031 | ||
|
|
1120037afd | ||
|
|
2115866868 | ||
|
|
8c0bb9b136 | ||
|
|
e186f6feec | ||
|
|
a6c4e54c8d | ||
|
|
9c8b106468 | ||
|
|
088f55536b | ||
|
|
9689377c27 | ||
|
|
72bf42a9f5 | ||
|
|
730e83903f | ||
|
|
7777a835b9 | ||
|
|
63fa608bce | ||
|
|
e368591739 | ||
|
|
82a00ed5aa | ||
|
|
29be86c326 | ||
|
|
d7ffa40a2d | ||
|
|
3dae75234b | ||
|
|
51746b66d0 | ||
|
|
9d56847976 | ||
|
|
35c1ff1d8c | ||
|
|
86b56a0c24 | ||
|
|
10e3a39f47 | ||
|
|
87cff73a73 | ||
|
|
9270a82044 | ||
|
|
26f73f413c | ||
|
|
63b70b12d4 | ||
|
|
d3db0b5643 | ||
|
|
92b4a3ff7c | ||
|
|
0fba97c3b0 | ||
|
|
5dafc6e6c6 | ||
|
|
4dd6934f48 | ||
|
|
8f257305df | ||
|
|
e2dff8513c | ||
|
|
de589ffcf9 | ||
|
|
712a661776 | ||
|
|
2343b7c0d2 | ||
|
|
47f420f433 | ||
|
|
679cd342bb | ||
|
|
a3f009754b | ||
|
|
319dd9bebb | ||
|
|
561ae8423d | ||
|
|
c790d0b90d | ||
|
|
9fa31f6305 | ||
|
|
6ccc54bb9e | ||
|
|
05524ff6db | ||
|
|
16cc8ecc02 | ||
|
|
440c84cc59 | ||
|
|
dfddc08d9d | ||
|
|
8659e811dd | ||
|
|
72daf52395 | ||
|
|
097c7b2414 | ||
|
|
d690b42006 | ||
|
|
a2c7e24745 | ||
|
|
e6b8eab5fc | ||
|
|
76a44ec771 | ||
|
|
b127371ef1 | ||
|
|
faf21e5dff | ||
|
|
1031862d7e | ||
|
|
713a9926ce | ||
|
|
8eb6762f4b | ||
|
|
25279ce70f | ||
|
|
981f597365 | ||
|
|
3c4b440678 | ||
|
|
ce9ef9bf20 | ||
|
|
646c3a9647 | ||
|
|
3f2d88081b | ||
|
|
adce8a9211 | ||
|
|
f0c68a4a82 | ||
|
|
5b55bdd257 | ||
|
|
8147d339ce | ||
|
|
8191128c44 | ||
|
|
2c5dde0e3d | ||
|
|
74c5c8fa36 | ||
|
|
da44c683a9 | ||
|
|
51bf4b6268 | ||
|
|
33da79db04 | ||
|
|
9dd63c9b76 | ||
|
|
1ac234e266 | ||
|
|
8f40999d13 | ||
|
|
03f0721efd | ||
|
|
e53ee7840d | ||
|
|
fe66cb31fc | ||
|
|
4d4167cc81 | ||
|
|
90011f9b03 | ||
|
|
24b2661504 | ||
|
|
5278250229 | ||
|
|
ddc3c08182 | ||
|
|
14ad3d34e9 | ||
|
|
31b3c1be15 | ||
|
|
5875104df3 | ||
|
|
8a07df00f4 | ||
|
|
cdb4e9ed9c | ||
|
|
16a9759969 | ||
|
|
9f2514c5b9 | ||
|
|
66621b512e | ||
|
|
aecec53380 | ||
|
|
337614085a | ||
|
|
bf2187393c | ||
|
|
f83dff4476 | ||
|
|
c0b8c3f816 | ||
|
|
b663b6cbfc | ||
|
|
5d1d223ce5 | ||
|
|
25c9f19d7f | ||
|
|
51bdaac0a1 | ||
|
|
b0cd472396 | ||
|
|
7247c51c21 | ||
|
|
878bc25d22 | ||
|
|
01273d244b | ||
|
|
e79ed31565 | ||
|
|
3dd836b088 | ||
|
|
5082e54355 | ||
|
|
d2b0a7832a | ||
|
|
3228299291 | ||
|
|
ad1914b567 | ||
|
|
d0eeb056af | ||
|
|
036fde1d4f | ||
|
|
5931ac0db5 | ||
|
|
63007a670e | ||
|
|
f1f1fbd435 | ||
|
|
0b8262c195 | ||
|
|
2a76938de3 | ||
|
|
8934d2c5a4 | ||
|
|
2f53b38e79 | ||
|
|
1bbbd709bf | ||
|
|
cf5aefa4fe | ||
|
|
724e8403d8 | ||
|
|
2c2783e127 | ||
|
|
6c284c827e | ||
|
|
430695a93f | ||
|
|
46f0f924a9 | ||
|
|
1d0456298e | ||
|
|
06b7bffd02 | ||
|
|
cbbd2ed615 | ||
|
|
d5891ee871 | ||
|
|
15e2fdec9e | ||
|
|
7ed979cbd4 | ||
|
|
605866f5cc | ||
|
|
aa94ea7b49 | ||
|
|
c1ca6c95c4 | ||
|
|
0002cd0cce | ||
|
|
c797ed7888 | ||
|
|
b9d6c832cb | ||
|
|
06b38f635a | ||
|
|
9e3e306b79 | ||
|
|
fb9a416491 | ||
|
|
4a66c4e699 | ||
|
|
91a94d8db5 | ||
|
|
fb018c0941 | ||
|
|
3d730fd457 | ||
|
|
a5aca28f0f | ||
|
|
99266722b6 | ||
|
|
fa592284b7 | ||
|
|
702311cc3c | ||
|
|
4dbcf3f226 | ||
|
|
236acce903 | ||
|
|
cf0e452105 | ||
|
|
31868e7896 | ||
|
|
4c81cc6b65 | ||
|
|
e38d3a6088 | ||
|
|
4d01b7f4e2 | ||
|
|
f3c2d8132d | ||
|
|
4923b7a1fd | ||
|
|
e9afaab2c2 | ||
|
|
6971c2f402 | ||
|
|
60df08fc1a | ||
|
|
665f1ee4e0 | ||
|
|
b4f81cdf33 | ||
|
|
f3ad1a6570 | ||
|
|
e448c9d80f | ||
|
|
4fd845e41c | ||
|
|
744e41c179 | ||
|
|
3ccd34fad9 | ||
|
|
53a138d49f | ||
|
|
6faab6d9bc | ||
|
|
b2f0ef86da | ||
|
|
7ec446f2fb | ||
|
|
8215951252 | ||
|
|
8e2ec48cc0 | ||
|
|
16ce004157 | ||
|
|
9112d12d6f | ||
|
|
3272ac4b67 | ||
|
|
03cbac1320 | ||
|
|
5dd3b837ba | ||
|
|
2359f4cdbb | ||
|
|
332db02c1c | ||
|
|
69fab89a0c | ||
|
|
3f44fe132e | ||
|
|
7fc9bc2ff2 | ||
|
|
85e118ae26 | ||
|
|
da8d00a517 | ||
|
|
8bb1a9e6f4 | ||
|
|
b6918e7d34 | ||
|
|
78ac81e723 | ||
|
|
abb5fd2041 | ||
|
|
12a4eca746 | ||
|
|
ad4fc390f6 | ||
|
|
4147bb7e35 | ||
|
|
7965caeebb | ||
|
|
a678d8308a | ||
|
|
bc0f7492c2 | ||
|
|
5ee00293f5 | ||
|
|
990f5f044f | ||
|
|
8c306e4f7a | ||
|
|
81d0789fb4 | ||
|
|
82a6edbbf3 | ||
|
|
e38211b237 | ||
|
|
9d0f024681 | ||
|
|
9b4a6b41fa | ||
|
|
75baff2a37 | ||
|
|
c53359f4fa | ||
|
|
7f8431a0d1 | ||
|
|
8ac65b6b63 | ||
|
|
daf9329741 | ||
|
|
fa788f1922 | ||
|
|
9cd201e1ec | ||
|
|
38c1cb6f81 | ||
|
|
ab232cf212 | ||
|
|
749362ae16 | ||
|
|
3a0857fdd8 | ||
|
|
c89c9de1ac | ||
|
|
ec3cadb1af | ||
|
|
80a53a17fb | ||
|
|
0a7105213a | ||
|
|
337dd8af3e | ||
|
|
2f193be848 | ||
|
|
897d92d978 | ||
|
|
97a3b196d0 | ||
|
|
61034c3ccf | ||
|
|
681a9273e4 | ||
|
|
ab91d8ea3f | ||
|
|
c8e12740b6 | ||
|
|
1ed6213786 | ||
|
|
d88dabe798 | ||
|
|
b306a4f54c | ||
|
|
fcb24a897c | ||
|
|
8e3bf3f0d6 | ||
|
|
36924c615e | ||
|
|
defd120da2 | ||
|
|
871807aaf8 | ||
|
|
a04aaaf029 | ||
|
|
435709f550 | ||
|
|
222e4fcb5b | ||
|
|
a17d0ecfd6 | ||
|
|
e1e07a4588 | ||
|
|
e47153555e | ||
|
|
be316406dd | ||
|
|
09e1edee27 | ||
|
|
6419178dc5 | ||
|
|
6958b5348c | ||
|
|
176a9fef98 | ||
|
|
a2665f6a7b | ||
|
|
6c5ff7c3c1 | ||
|
|
ed0cee0b49 | ||
|
|
b5e7ac9542 | ||
|
|
316fc28268 | ||
|
|
b54ed736b7 | ||
|
|
9ee550e60d | ||
|
|
1df977ea0c | ||
|
|
fb87fa8df3 | ||
|
|
f9f1cf68fa | ||
|
|
0c3657430c | ||
|
|
25ae7b9441 | ||
|
|
b3d0c6a4d1 | ||
|
|
29b9a29557 | ||
|
|
35f4de528a | ||
|
|
1c4b0cf05d | ||
|
|
10f5c093e1 | ||
|
|
da4ef0387d | ||
|
|
c51231910b | ||
|
|
efbe990221 | ||
|
|
249dac5b01 | ||
|
|
2435436296 | ||
|
|
0192fa6d32 | ||
|
|
5425ba5f11 | ||
|
|
35ab4759e1 | ||
|
|
3e43c3f30a | ||
|
|
ae85cbcaed | ||
|
|
a50eacb027 | ||
|
|
d9e9338ad3 | ||
|
|
357208852e | ||
|
|
9eca22715c | ||
|
|
b193c9c035 | ||
|
|
0357ba87ad | ||
|
|
abd27d1acf | ||
|
|
12f4135e41 | ||
|
|
fde8999fad | ||
|
|
f1c5e4cafd | ||
|
|
fd9294890b | ||
|
|
5cf6b38f94 | ||
|
|
c398ba988e | ||
|
|
25916e41bd | ||
|
|
7e377baeb5 | ||
|
|
a16c119073 | ||
|
|
051e78fc3d | ||
|
|
3a6e37eb87 | ||
|
|
a2d892a18b | ||
|
|
de351bea39 | ||
|
|
5ae82572f1 | ||
|
|
5ddb61526c | ||
|
|
9f3e55494b | ||
|
|
5ab2ae9c3f | ||
|
|
96e6c2b19e | ||
|
|
018c11b660 | ||
|
|
7526696150 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
*.swp
|
||||
*.pyc
|
||||
|
||||
112
CONVENTIONS
Normal file
112
CONVENTIONS
Normal file
@@ -0,0 +1,112 @@
|
||||
This file describes some conventions we are going to try and use
|
||||
to keep things organized and everyone on the same page.
|
||||
|
||||
If you find you need to diverge from this document for something,
|
||||
please discuss it on the infrastructure list and see if we can
|
||||
adjust this document for that use case.
|
||||
|
||||
Playbook naming
|
||||
===============
|
||||
The top level playbooks directory should contain:
|
||||
|
||||
* Playbooks that are generic and used by serveral groups/hosts playbooks
|
||||
* Playbooks used for utility purposes from command line
|
||||
* Groups and Hosts subdirs.
|
||||
|
||||
Generic playbooks are included in other playbooks and perform
|
||||
basic setup that is used by other groups/hosts.
|
||||
Examples: cloud setup, collectd, webserver, iptables, etc
|
||||
|
||||
Utility playbooks are used by sysadmins command line to perform some
|
||||
specific function. Examples: host update, vhost update, vhost reboot.
|
||||
|
||||
The playbooks/groups/ directory should contain one playbook per
|
||||
group. This should be used in the case of multiple machines/instances
|
||||
in a group. MUST include a hosts entry that describes the hosts in the group.
|
||||
Examples: packages, proxy, unbound, virthost, etc.
|
||||
Try and be descriptive with the name here.
|
||||
|
||||
The playbooks/hosts/ directory should contain one playbook per 'host'
|
||||
for when a role is handled by only one host. Hosts playbooks
|
||||
MUST be FQDN.yml, MUST contain Hosts: the host or ip.
|
||||
Examples: persistent cloud images, special hosts.
|
||||
|
||||
Where possible groups should be used. Hosts playbooks should only
|
||||
be used in specific cases where a generic group playbook would not work.
|
||||
|
||||
Both groups and hosts playbooks should always include:
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- "{{ private}}/vars.yml"
|
||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||
|
||||
Play naming
|
||||
===========
|
||||
Plays in playbooks should be a short readable description of what the play
|
||||
is doing. This will be displayed to the user and/or mailed out, so think
|
||||
about what you would like to see if the play you are writing failed that
|
||||
would be descriptive to the reader to help fix it.
|
||||
|
||||
Inventory
|
||||
=========
|
||||
The inventory file should add all hosts to one (or more) groups.
|
||||
|
||||
When there are staging hosts for a role/service, they should be in the
|
||||
main group for that role as well as a staging for the role.
|
||||
FIXME: will depend on how we do staging. (see below)
|
||||
|
||||
Tags
|
||||
====
|
||||
Tags allow you to run just a subset of plays with a specific tag(s).
|
||||
|
||||
We have some standard tags we should use on all plays:
|
||||
|
||||
packages - this play installs or removes packages.
|
||||
|
||||
config - this play installs config files.
|
||||
|
||||
check - we could use this tag to include 'is everything running that should be'
|
||||
type tasks.
|
||||
|
||||
FIXME: others?
|
||||
|
||||
Production vs Staging vs Development
|
||||
====================================
|
||||
In the default state, we should strive to have production and staging using
|
||||
the same exact playbooks. development can also do so, or just be a more
|
||||
minimal free form for the developer.
|
||||
|
||||
When needing to make changes to test in staging the following process should
|
||||
be used:
|
||||
|
||||
FIXME... :)
|
||||
|
||||
Requirements:
|
||||
|
||||
1. shouldn't touch prod playbook by default
|
||||
2. should be easy to merge changes back to prod
|
||||
3. should not require people to remember to do a bunch of steps.
|
||||
4. should be easy to see exactly what changes are pending only in stg.
|
||||
|
||||
Cron job/automatic execution
|
||||
============================
|
||||
|
||||
We would like to get ansible running over hosts in an automated way.
|
||||
A git hook could do this.
|
||||
|
||||
* On commit:
|
||||
If we have a way to detemine exactly what hosts are affected by a
|
||||
change we could simply run only on those hosts.
|
||||
|
||||
We might want a short delay (10m) to allow someone to see a problem
|
||||
or others to note one from the commit.
|
||||
|
||||
* Once a day: (more often? less often?)
|
||||
|
||||
We may want to re-run on all hosts once a day and yell loudly
|
||||
if anything changed.
|
||||
|
||||
FIXME: perhaps we want a tag of items to run at this time?
|
||||
FIXME: alternately we could have a util playbook that runs a
|
||||
bunch of checks for us?
|
||||
|
||||
37
README
37
README
@@ -1,9 +1,15 @@
|
||||
ansible repository/structure
|
||||
== ansible repository/structure ==
|
||||
|
||||
files - files and templates for use in playbooks/tasks
|
||||
- subdirs for specific tasks/dirs highly recommended
|
||||
|
||||
inventory - where the inventory and additional vars is stored
|
||||
- All files in this directory in ini format
|
||||
- added together for total inventory
|
||||
group_vars:
|
||||
- per group variables set here in a file per group
|
||||
host_vars:
|
||||
- per host variables set here in a file per host
|
||||
|
||||
library - library of custom local ansible modules
|
||||
|
||||
@@ -11,6 +17,10 @@ playbooks - collections of plays we want to run on systems
|
||||
|
||||
tasks - snippets of tasks that should be included in plays
|
||||
|
||||
roles - specific roles to be use in playbooks.
|
||||
Each role has it's own files/templates/vars
|
||||
|
||||
== Paths ==
|
||||
|
||||
public path for everything is:
|
||||
|
||||
@@ -20,12 +30,11 @@ private path - which is sysadmin-main accessible only is:
|
||||
|
||||
/srv/private/ansible
|
||||
|
||||
|
||||
In general to run any ansible playbook you will want to run:
|
||||
|
||||
sudo -i ansible-playbook /path/to/playbook.yml
|
||||
|
||||
|
||||
== Cloud information ==
|
||||
|
||||
cloud instances:
|
||||
to startup a new cloud instance and configure for basic server use run (as
|
||||
@@ -61,9 +70,6 @@ define these with:
|
||||
|
||||
--extra-vars="varname=value varname1=value varname2=value"
|
||||
|
||||
|
||||
|
||||
|
||||
Name Memory_MB Disk VCPUs
|
||||
m1.tiny 512 0 1
|
||||
m1.small 2048 20 1
|
||||
@@ -124,7 +130,7 @@ description: some description so someone else can know what this is
|
||||
|
||||
The available images can be found by running::
|
||||
source /srv/private/ansible/files/openstack/persistent-admin/ec2rc.sh
|
||||
euca-describe-images | grep emi
|
||||
euca-describe-images | grep ami
|
||||
|
||||
4. setup a host playbook ansible/playbooks/hosts/$YOUR_HOSTNAME_HERE.yml
|
||||
Note: the name of this file doesn't really matter but it should normally
|
||||
@@ -137,10 +143,10 @@ The available images can be found by running::
|
||||
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- ${private}/vars.yml
|
||||
- "{{ private }}/vars.yml"
|
||||
|
||||
tasks:
|
||||
- include: $tasks/persistent_cloud.yml
|
||||
- include: "{{ tasks }}/persistent_cloud.yml"
|
||||
|
||||
- name: provision instance
|
||||
hosts: $YOUR_HOSTNAME/IP HERE
|
||||
@@ -149,15 +155,15 @@ The available images can be found by running::
|
||||
|
||||
vars_files:
|
||||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- ${private}/vars.yml
|
||||
- ${vars}/${ansible_distribution}.yml
|
||||
- "{{ private }}/vars.yml"
|
||||
- /srv/web/infra/ansible/vars//{{ ansible_distribution }}.yml
|
||||
|
||||
tasks:
|
||||
- include: $tasks/cloud_setup_basic.yml
|
||||
- include: "{{ tasks }}/cloud_setup_basic.yml
|
||||
# fill in other actions/includes/etc here
|
||||
|
||||
handlers:
|
||||
- include: $handlers/restart_services.yml
|
||||
- include: "{{ handlers }}/restart_services.yml
|
||||
|
||||
|
||||
5. add/commit the above to the git repo and push your changes
|
||||
@@ -171,10 +177,6 @@ The available images can be found by running::
|
||||
You should be able to run that playbook over and over again safely, it will
|
||||
only setup/create a new instance if the ip is not up/responding.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SECURITY GROUPS
|
||||
- to edit security groups you must either have your own cloud account or
|
||||
be a member of sysadmin-main
|
||||
@@ -212,6 +214,7 @@ euca-create-group -d "group description here" groupname
|
||||
|
||||
To add a rule to a group:
|
||||
euca-authorize -P tcp -p 22 groupname
|
||||
euca-authorize -P icmp -t -1:-1 groupname
|
||||
|
||||
To delete a rule from a group:
|
||||
euca-revoke -P tcp -p 22 groupname
|
||||
|
||||
86
callback_plugins/fedmsg_callback.py
Normal file
86
callback_plugins/fedmsg_callback.py
Normal file
@@ -0,0 +1,86 @@
|
||||
# (C) 2012, Michael DeHaan, <michael.dehaan@gmail.com>
|
||||
# based on the log_plays example
|
||||
# skvidal@fedoraproject.org
|
||||
# rbean@redhat.com
|
||||
|
||||
# Ansible is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Ansible is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import pwd
|
||||
|
||||
import fedmsg
|
||||
import fedmsg.config
|
||||
|
||||
|
||||
def getlogin():
|
||||
try:
|
||||
user = os.getlogin()
|
||||
except OSError, e:
|
||||
user = pwd.getpwuid(os.geteuid())[0]
|
||||
return user
|
||||
|
||||
|
||||
class CallbackModule(object):
|
||||
""" Publish playbook starts and stops to fedmsg. """
|
||||
|
||||
playbook = None
|
||||
|
||||
def __init__(self):
|
||||
config = fedmsg.config.load_config()
|
||||
config.update(dict(
|
||||
name='relay_inbound',
|
||||
cert_prefix='shell',
|
||||
active=True,
|
||||
))
|
||||
fedmsg.init(**config)
|
||||
|
||||
def playbook_on_play_start(self, pattern):
|
||||
# This gets called once for each play.. but we just issue a message once
|
||||
# for the first one. One per "playbook"
|
||||
play = getattr(self, 'play', None)
|
||||
if play:
|
||||
# figure out where the playbook FILE is
|
||||
path = os.path.abspath(play.playbook.filename)
|
||||
|
||||
# Bail out early without publishing if we're in --check mode
|
||||
if play.playbook.check:
|
||||
return
|
||||
|
||||
if not self.playbook:
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.start",
|
||||
msg=dict(
|
||||
playbook=path,
|
||||
userid=getlogin(),
|
||||
extra_vars=play.playbook.extra_vars,
|
||||
inventory=play.playbook.inventory.host_list,
|
||||
playbook_checksum=play.playbook.check,
|
||||
check=play.playbook.check,
|
||||
),
|
||||
)
|
||||
self.playbook = path
|
||||
|
||||
def playbook_on_stats(self, stats):
|
||||
if not self.playbook:
|
||||
return
|
||||
|
||||
results = dict([(h, stats.summarize(h)) for h in stats.processed])
|
||||
fedmsg.publish(
|
||||
modname="ansible", topic="playbook.complete",
|
||||
msg=dict(
|
||||
playbook=self.playbook,
|
||||
userid=getlogin(),
|
||||
results=results,
|
||||
),
|
||||
)
|
||||
@@ -50,24 +50,24 @@ class LogMech(object):
|
||||
raise
|
||||
|
||||
# checksum of full playbook?
|
||||
|
||||
|
||||
@property
|
||||
def playbook_id(self):
|
||||
if self._pb_fn:
|
||||
return os.path.basename(self._pb_fn).replace('.yml', '').replace('.yaml', '')
|
||||
else:
|
||||
return "ansible-cmd"
|
||||
|
||||
|
||||
@playbook_id.setter
|
||||
def playbook_id(self, value):
|
||||
self._pb_fn = value
|
||||
|
||||
|
||||
@property
|
||||
def logpath_play(self):
|
||||
# this is all to get our path to look nice ish
|
||||
tstamp = time.strftime('%Y/%m/%d/%H.%M.%S', time.localtime(self.started))
|
||||
path = os.path.normpath(self.logpath + '/' + self.playbook_id + '/' + tstamp + '/')
|
||||
|
||||
|
||||
if not os.path.exists(path):
|
||||
try:
|
||||
os.makedirs(path)
|
||||
@@ -76,13 +76,13 @@ class LogMech(object):
|
||||
raise
|
||||
|
||||
return path
|
||||
|
||||
|
||||
def play_log(self, content):
|
||||
# record out playbook.log
|
||||
# include path to playbook, checksums, user running playbook
|
||||
# any args we can get back from the invocation
|
||||
fd = open(self.logpath_play + '/' + 'playbook-' + self.pid + '.info', 'a')
|
||||
fd.write('%s\n' % content)
|
||||
fd.write('%s\n' % content)
|
||||
fd.close()
|
||||
|
||||
def task_to_json(self, task):
|
||||
@@ -92,25 +92,25 @@ class LogMech(object):
|
||||
res['task_args'] = task.module_args
|
||||
if self.playbook_id == 'ansible-cmd':
|
||||
res['task_userid'] = getlogin()
|
||||
for k in ("delegate_to", "environment", "first_available_file",
|
||||
"local_action", "notified_by", "notify", "only_if",
|
||||
"register", "sudo", "sudo_user", "tags",
|
||||
for k in ("delegate_to", "environment", "first_available_file",
|
||||
"local_action", "notified_by", "notify",
|
||||
"register", "sudo", "sudo_user", "tags",
|
||||
"transport", "when"):
|
||||
v = getattr(task, k, None)
|
||||
if v:
|
||||
res['task_' + k] = v
|
||||
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def log(self, host, category, data, task=None, count=0):
|
||||
if not host:
|
||||
host = 'HOSTMISSING'
|
||||
|
||||
|
||||
if type(data) == dict:
|
||||
name = data.get('module_name',None)
|
||||
else:
|
||||
name = "unknown"
|
||||
|
||||
|
||||
|
||||
# we're in setup - move the invocation info up one level
|
||||
if 'invocation' in data:
|
||||
@@ -126,21 +126,23 @@ class LogMech(object):
|
||||
data['task_start'] = self._last_task_start
|
||||
data['task_end'] = time.time()
|
||||
data.update(self.task_to_json(task))
|
||||
|
||||
|
||||
if 'task_userid' not in data:
|
||||
data['task_userid'] = getlogin()
|
||||
|
||||
|
||||
if category == 'OK' and data.get('changed', False):
|
||||
category = 'CHANGED'
|
||||
|
||||
if self.play_info.get('check', False):
|
||||
|
||||
if self.play_info.get('check', False) and self.play_info.get('diff', False):
|
||||
category = 'CHECK_DIFF:' + category
|
||||
elif self.play_info.get('check', False):
|
||||
category = 'CHECK:' + category
|
||||
|
||||
|
||||
fd = open(self.logpath_play + '/' + host + '.log', 'a')
|
||||
now = time.strftime(TIME_FORMAT, time.localtime())
|
||||
fd.write(MSG_FORMAT % dict(now=now, name=name, count=count, category=category, data=json.dumps(data)))
|
||||
fd.close()
|
||||
|
||||
|
||||
|
||||
logmech = LogMech()
|
||||
|
||||
@@ -238,7 +240,7 @@ class CallbackModule(object):
|
||||
|
||||
def playbook_on_play_start(self, pattern):
|
||||
self._task_count = 0
|
||||
|
||||
|
||||
play = getattr(self, 'play', None)
|
||||
if play:
|
||||
# figure out where the playbook FILE is
|
||||
@@ -258,27 +260,29 @@ class CallbackModule(object):
|
||||
pb_info['inventory'] = play.playbook.inventory.host_list
|
||||
pb_info['playbook_checksum'] = utils.md5(path)
|
||||
pb_info['check'] = play.playbook.check
|
||||
pb_info['diff'] = play.playbook.diff
|
||||
logmech.play_log(json.dumps(pb_info, indent=4))
|
||||
|
||||
self._play_count += 1
|
||||
# then write per-play info that doesn't duplcate the playbook info
|
||||
|
||||
self._play_count += 1
|
||||
# then write per-play info that doesn't duplcate the playbook info
|
||||
info = {}
|
||||
info['play'] = play.name
|
||||
info['hosts'] = play.hosts
|
||||
info['transport'] = play.transport
|
||||
info['number'] = self._play_count
|
||||
info['check'] = play.playbook.check
|
||||
info['diff'] = play.playbook.diff
|
||||
logmech.play_info = info
|
||||
logmech.play_log(json.dumps(info, indent=4))
|
||||
|
||||
|
||||
def playbook_on_stats(self, stats):
|
||||
results = {}
|
||||
results = {}
|
||||
for host in stats.processed.keys():
|
||||
results[host] = stats.summarize(host)
|
||||
logmech.log(host, 'STATS', results[host])
|
||||
logmech.play_log(json.dumps({'stats': results}, indent=4))
|
||||
logmech.play_log(json.dumps({'playbook_end': time.time()}, indent=4))
|
||||
print 'logs written to: %s' % logmech.logpath_play
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,45 +0,0 @@
|
||||
#
|
||||
# Default Bacula File Daemon Configuration file
|
||||
#
|
||||
# For Bacula release 2.0.3 (06 March 2007) -- redhat (Zod)
|
||||
#
|
||||
# There is not much to change here except perhaps the
|
||||
# File daemon Name to
|
||||
#
|
||||
|
||||
#
|
||||
# List Directors who are permitted to contact this File daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
}
|
||||
|
||||
#
|
||||
# Restricted Director, used by tray-monitor to get the
|
||||
# status of the file daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-mon
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
Monitor = yes
|
||||
}
|
||||
|
||||
#
|
||||
# "Global" File daemon configuration specifications
|
||||
#
|
||||
FileDaemon { # this is me
|
||||
Name = bacula-fd
|
||||
FDport = 9102 # where we listen for the director
|
||||
WorkingDirectory = /var/spool/bacula
|
||||
Pid Directory = /var/run
|
||||
Maximum Concurrent Jobs = 10
|
||||
Heartbeat Interval = 10
|
||||
#Maximum Network Buffer Size = 131072
|
||||
}
|
||||
|
||||
# Send all messages except skipped files back to Director
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = bacula-dir = all, !skipped, !restored
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
#
|
||||
# Default Bacula Storage Daemon Configuration file
|
||||
#
|
||||
# For Bacula release 2.0.3 (06 March 2007) -- redhat (Zod)
|
||||
#
|
||||
# You may need to change the name of your tape drive
|
||||
# on the "Archive Device" directive in the Device
|
||||
# resource. If you change the Name and/or the
|
||||
# "Media Type" in the Device resource, please ensure
|
||||
# that dird.conf has corresponding changes.
|
||||
#
|
||||
|
||||
Storage { # definition of myself
|
||||
Name = bacula-sd
|
||||
SDPort = 9103 # Director's port
|
||||
WorkingDirectory = "/var/spool/bacula"
|
||||
Pid Directory = "/var/run"
|
||||
Maximum Concurrent Jobs = 10
|
||||
Heartbeat Interval = 5
|
||||
}
|
||||
|
||||
#
|
||||
# List Directors who are permitted to contact Storage daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
}
|
||||
|
||||
#
|
||||
# Restricted Director, used by tray-monitor to get the
|
||||
# status of the storage daemon
|
||||
#
|
||||
Director {
|
||||
Name = bacula-mon
|
||||
Password = "{{ bacula5PasswordDir }}"
|
||||
Monitor = yes
|
||||
}
|
||||
|
||||
#
|
||||
# Devices supported by this Storage daemon
|
||||
# To connect, the Director's bacula-dir.conf must have the
|
||||
# same Name and MediaType.
|
||||
#
|
||||
|
||||
Device {
|
||||
Name = FileStorage
|
||||
Media Type = File
|
||||
Archive Device = /bacula/
|
||||
LabelMedia = yes; # lets Bacula label unlabeled media
|
||||
Random Access = Yes;
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
RemovableMedia = no;
|
||||
AlwaysOpen = no;
|
||||
}
|
||||
|
||||
|
||||
Device {
|
||||
Name = FileStorage2
|
||||
Media Type = File
|
||||
Archive Device = /bacula2/
|
||||
LabelMedia = yes; # lets Bacula label unlabeled media
|
||||
Random Access = Yes;
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
RemovableMedia = no;
|
||||
AlwaysOpen = no;
|
||||
}
|
||||
|
||||
#
|
||||
# An autochanger device with two drives
|
||||
|
||||
Autochanger {
|
||||
Name = Autochanger
|
||||
Device = Drive-1
|
||||
Changer Command = "/usr/libexec/bacula/mtx-changer %c %o %S %a %d"
|
||||
Changer Device = /dev/sg1
|
||||
}
|
||||
|
||||
Device {
|
||||
Name = Drive-1 #
|
||||
Drive Index = 0
|
||||
Media Type = LTO-5
|
||||
Archive Device = /dev/nst0
|
||||
AutomaticMount = yes; # when device opened, read it
|
||||
AlwaysOpen = yes;
|
||||
RemovableMedia = yes;
|
||||
RandomAccess = no;
|
||||
AutoChanger = yes
|
||||
SpoolDirectory = /bacula/bacula/spool/;
|
||||
Maximum Spool Size = 1600G;
|
||||
# Label Media = yes
|
||||
# Enable the Alert command only if you have the mtx package loaded
|
||||
Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
|
||||
# If you have smartctl, enable this, it has more info than tapeinfo
|
||||
Alert Command = "sh -c 'smartctl -H -l error %c'"
|
||||
}
|
||||
#
|
||||
# Send all messages to the Director,
|
||||
# mount messages also are sent to the email address
|
||||
#
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = bacula-dir = all
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Bacula User Agent (or Console) Configuration File
|
||||
#
|
||||
|
||||
Director {
|
||||
Name = bacula-dir
|
||||
DIRport = 9101
|
||||
address = localhost
|
||||
Password = "{{ bacula5PasswordCon }}"
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# This script deletes a catalog dump
|
||||
#
|
||||
rm -f /bacula/bacula.sql
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
rm -f /bacula/bacula.sql
|
||||
/usr/bin/mysqldump -u bacula -f bacula > /bacula/bacula.sql
|
||||
26
files/common/fedora-updates-testing.repo
Normal file
26
files/common/fedora-updates-testing.repo
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates-testing]
|
||||
name=Fedora $releasever - $basearch - Test Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Test Updates Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-testing-source]
|
||||
name=Fedora $releasever - Test Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
26
files/common/fedora-updates-testing.repo-arm
Normal file
26
files/common/fedora-updates-testing.repo-arm
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates-testing]
|
||||
name=Fedora $releasever - $basearch - Test Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Test Updates Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-testing-source]
|
||||
name=Fedora $releasever - Test Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
26
files/common/fedora-updates.repo
Normal file
26
files/common/fedora-updates.repo
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates]
|
||||
name=Fedora $releasever - $basearch - Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Updates - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[updates-source]
|
||||
name=Fedora $releasever - Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/updates/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
26
files/common/fedora-updates.repo-arm
Normal file
26
files/common/fedora-updates.repo-arm
Normal file
@@ -0,0 +1,26 @@
|
||||
[updates]
|
||||
name=Fedora $releasever - $basearch - Updates
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Updates - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[updates-source]
|
||||
name=Fedora $releasever - Updates Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/updates/$releasever/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
29
files/common/fedora.repo
Normal file
29
files/common/fedora.repo
Normal file
@@ -0,0 +1,29 @@
|
||||
[fedora]
|
||||
name=Fedora $releasever - $basearch
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
||||
enabled=1
|
||||
metadata_expire=7d
|
||||
gpgcheck=0
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
|
||||
[fedora-source]
|
||||
name=Fedora $releasever - Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
|
||||
29
files/common/fedora.repo-arm
Normal file
29
files/common/fedora.repo-arm
Normal file
@@ -0,0 +1,29 @@
|
||||
[fedora]
|
||||
name=Fedora $releasever - $basearch
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/os/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
|
||||
enabled=1
|
||||
metadata_expire=7d
|
||||
gpgcheck=0
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=Fedora $releasever - $basearch - Debug
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/debug/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
|
||||
[fedora-source]
|
||||
name=Fedora $releasever - Source
|
||||
failovermethod=priority
|
||||
baseurl=http://infrastructure.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/source/SRPMS/
|
||||
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
|
||||
enabled=0
|
||||
metadata_expire=7d
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
|
||||
@@ -1,42 +1,17 @@
|
||||
#ausil
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAD9QDskl41P2f4wqBuDBRD3VJ7MfKD6gMetMEaOy2b/CzfxN1vzeoxEvUxefi4+uh5b5ht5+BhQVhvBV7sTxxYftEH+B7IRmWigqcS1Ndnw+ML6zCbSTCJOqDvTLxmkZic0NUBIBP907ztMCoZjaOW9SSCrdA9Vp87V3x/KEQaeSNntmnFqtnpQI/N0NlmqxB78p97W/QDpLuftqJ33sM0uyvxXSusThLSFBHjisezsWox49nEKY8HW+Kwkmw+k7EF4tsDWymPB+S0gMsMlTxzjutNASVDmn6H+lgkzns+5Xxii4/mZWrcjqfLuH7vCI2mWykZJ6ek0LiQea9tNN+KZomqX6NbTUK3riaDPrZPNexa4I83Fp+DYNmYgnGMInqn+cZ5PoUJ3u3LaqZGBQeuuONTw0yQ8Pkkn5xibpPO6qblHKcet0pfmWQ5ab+5BDrsyLcPXolMci5h45GNWebr7UMuXT6+q+EolnYgbgDzzGJ4xPohF04OW8CwflK64KEnYcqlGs+DF4TNgGFlhKiyCWfXSjizmQusxn17ayi6+yrkiGeqfz72qyZ1pSKlwA8XRYC2VkAAquJP6zAtAKjCUdmRTSyYgCpoIAlMwBO07BiPLLov6lKdphZYY1DI7pTXA98fhVU04PDqJJYR1GKkttmCsjbRWnxjkPl/Zka1+ei3k9DNidT6j4hFj+uTj8SS70qZUtKLNpc5IcedHaGEK0vcXJm9lIEKBIEnN0PCLZCa4kQZnfdsbuep1fbXNf4WYPXea29aRKJc4hiqsdrccTp4KueHgWt1Jj6CZDZcFgX+NlUVWwk6djgjRzHUryExtsjCcgGMPRJWdUnVcpgkQ1qJhEXng3W+nFFboArWfwU8u1pXEdeE1Z+m+ows3nJHdEgQevyy/cUx6BPNPZkBh10MWskSV8Z+vb02vJB+QikRMwQs3Ywf6RMaZFrBkWD4FfUaU24f4wgtPQN7j5xxJ2rWLJ/s9ZOWSl9yrytC6ZUQwmayLmiPUdm4u/7ZZmaly39K1YWqFDl3eUrRAZwf1L/NAqFu/qcQQ3Xf20K0nI55nVbZ8ODyx6BtfwoioblnTEcehK0uud5Vamc5mfpErFY0agEecsc0sMZO+ky9pf/gCUdM7je7kMDI2hdx61fOa8Wypb5u9WNBWKRKx8xT1XUKhb2uFumm3sR1iNm1Qhj92mo/NO2aETOA1lsYSL0XK571Yy0iFK3X1nOqp/gCsEGLI8OPQk6XuFqv8hmfiIXNKV8IwuDStw7eIvuQIgT7bmMkj+1Ca25foSmg3w5FqJux1gO9t5F018LeQZ6LVlYHZaQnaN+eTU7KfoCozhWw1H9pprDz Dennis Gilmore
|
||||
|
||||
#codeblock
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAACAEAstHxky7hl1inyHBy+q/9M+Aen2HSfy8IoW+sAO6HSuHEUT7qWB8AlSNjHhahjXx7sy/BUkUed+NB/177rjlThokZDJ0yoM9KKymp26ETGaamBSkWBxZatTj96BWfD0P2K9jc/9vxtgKBq3VK9UaOt6VtJ9q6mKY3DdWLZn+K6iGQAKMCAgd8cCMgD6epBB5/litz7WhYv+aYTyjZGUGbBojQUiWgXDv9lR7p0w+VP7pnZEeb3//k4pZhsPrKFwwRVRLxBvWgVKNvA6nMXmsdikHCLLj8YAevhEY1xAba+iCKOpTqT7Bu+1Fnb9St8u5iDod21gRmN7MGGWYsO+Iu2MNAW9sw2nsA/sdNR0HEEgBqJLhERjGv399fWKyiZaF90n59lg8Pb6EzE6wHRs6rSB+9uKApBzPk99BEHLvC6mhn6RjrOC+TWSTcmXojAwQYCadqIdgWUaBsxaugKEXBFcmRuDWtpDfsqmM1kjeGU6MiaMlqPW0KjsMaVVChLO5ZvB/T7qW4wr5ZjLri475MuHocCMP0ECSUk7I3YW2h8RU6FEFmTpuULFRQo01iPreY5XJ7l0+xy2eggAWo+X2h3nGjXhCPOelBg+LYe0WOmPgB5oc1m5HZtFTcFzYbhAE+xQKlbwNeYT8HmNmEMhPjVoNyOOV7NAap+ueS2u/7li5D59O5Iy8aa5n/WiuYfkqH4pG796nFyLr5L/LVudzyaYFb/Gk8C1j/NAWYw53D/9aOA277HHe5t0/daJhbo98u0asF5mvPld3swPuPqkEZzgUfmNgH5CkvcQcMzaOvj6qr6xNmQfgsHroCShb46kplQ2uSf1pMAqsjN7jGhk6l+Bu6hKHnJKhZJVLiuAZtgYvkCB1ahaO3wRVozA1VKCAlqHOqoCq4YLIobUL95H08Kwcz7vIRIadX1TkOoLb2EwPkE/xrhDp4BySh+j6YNklSBkiRHvJMBNnRIj8NTRjYyj2o1Om7kJ770lEdryg2og8QBaFWCmFkwzg1QVrBOuu0dN7kt2l7VI7Ib4lavKSVTrqUdxdSbthUlu/b4Qif+pbyEtUFgykRsHVs+5Ofg7FZpsgCJ8rLFjzeVF/hAYX7t3XaIPLu+DL8kzamb/CRy1b7+iAw9nJbd7ED2SGyU6+c2coMPG23y6+YxgEmNG/rkCLCypkEEDOZe4DuMerZQ/RxMo06+glC6HC/3VN2dHlVLtEEV33B04/6Z0plAhqtjG7PVs08f8a5msV/VYn5ifa4z0oIXX1r5CIg3Ejp1JguLhBHpWa7YbS2Mwu6GAbD+hQfCYrsUkFonoOLu5czpITLo7ceJFTQmAt7OxZEoZBfmtYfzADQsQVYQb6J4QwvM3iKJOn30dgtYnJOVlDZEn+0fivedxoBAt9jHJ8lVp2ov/dOFnimi5V+2QIMB0fKTkChsk10zsDZ/KUk6zfijjEju0WfjRHCd357KswNv3aXHazfRIw77S2UOenD+xmUDZ6WgnxservUSDNDz7NldLf/gdPOMO4uSwKZixzsoCNioeLEmQv4gomNK7DyZBLMHLlWlbliqP+QWuIJO1rfoH2vaxzzA7l5tJW1gfnxm87RrrwIf9v5kpdJM6gQZxqmBCRsKQd5VkrEJ/xaFfkv080pWNV0drWTZW8fAAgfUNYB260Hyk3rHsjQlVtQxGJ1aAcgjMi3eGKQMwptbUMYHqct75czX6xp6zgXPiC/glX6AtuiZQ5bOI07imil20ien/ks/dnel8L+dmYDasL9m0B2jZ3lbl3eR1Dy7UhqGyERx//vYQapEBuwFcqQ9UdIWCGGG2Pte1I39BSehUUGSCOOD38a/GCu0l7OWZKdwq80MK/Ixgz4neiZQZ7MD2wPy6vk6Num18PZPN7OynMrI2UG5MViQ0GAhRgxwbUCvc7uKnGRqZo9q2mCabCxLbv+hJ4bppxpHHJxMDDXilTKMfZb0YRbvjBUi7LFKLN3MBMK2U1jHE+PjBgweqF8Jtuw04CQMxK3unajZOVkYAIq8IdMbw0oBVP4++eGB9z0x1eH+IsqL6IgknbbyoMgQqW9/8atm8HW2QYCX47oPd4FHs8rgJZk3bz8MwN3tp8WCRtYnJuwkWGWSq77ans0Ycl/tUfSSwUjnSvMsJnuSbxvdX0XbP5eRWikk0pJz5lM9sjYFOPHrQ44/U254yBa0N6UhyNTQnMGzRvY+fADE49b10hXZwCCrxpY9KvGr1XNJMnMcUke+4p9RS5LUwcZ8A6v7oWtZaZwnuBzvKk+HAn2gevD7Stjto+TnRCx1qcbx8iOhAEC6nvbLl+U313TmawrO/usrI5w3EFKP/4BnlKJDtNBeklJ0MpU3R1fmisqfegjuBW2bbaxq8Uo6m7uqPsYuAl7E6rOyZHLbtA8szvbQ46MSqAHezqxHJajWn2oZXMtbddgO5vlkxbRp3SSVKaPOeIj3XOGl78Owp4gFNRE0RY2EuUvrwUhXZR4wx1VHYjS6o9HAwOx3dH+pf1OiblUEanLQ9HLuOBkLhP8wn1M2slsSw+A1gyuI0ayjRujYFXdw6Mqp6XKTdU8vNue2c3d0I+TMifBypP0oJtxXmEoPp/VsU9yLKA2FF7Xvv/Xq1gtZcuZWAbSwMok/ENY1xeIFyjV+0yBidmax3jaf9yus/XEpyeBS3iIz63ymU10Kb2vrWjubg/sa2yd+q0y96dLdDRbnbwGwMmg6mXvTlVXf8c= ricky@padlock01.home.elrod.me
|
||||
|
||||
#jstanley
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi5bNJQBrvT/YuvfLO0y6smZW5N+946uISkzmDi9myffLgHAZP4nBGeH/4GcB5ns9HJ19xVtbIwqOz4QwIqKh4gKU7DgaqND2Iu0bUUFL1KXPLGyAIW+9N3yHB+nKkH31alDnF4dpKkvO63DRkqh4ptxwEQbZDCFqn+vXuMnG4cPmDEweR3QZUt5m0Vc7HXzbehZxjUZ3xRWvT/pu+khBhJcRFkLlA60Fnqv7Q+MQP1C0Cpf3hiX1LcXUogXkNooAqx1YYRd8VqvI8e9yQW+a99x8FftnmXKlGCxP33ng6+U6Y2H7u3cRDrlRTbWqkry4SuUYo+6MtvZVgL0fw6PsZ jstanley@hawtness.rmrf.net
|
||||
|
||||
#kevin
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJH1lA7WHRCbaFtvzbw0HxHYJstZjuXhax1+eL+SUJ5fFRGosEc4fLrSCP0gSFDfXmNzuspoBgcQTqnNO8FdIUwkJLDEu0vTQls1aT9YUXb+RVwKB7ULA3b1dqFkmOgLEjTJL9AplK4OJ9Su0kq6QBV4mXCxMsgEML/gn6r8muZmu2L/LdzUnxKKggyq7O5q1K/eW5Yy21fpvbHt2UPQX1f6gt4ty7E9Nnuhi7SHCI7fNIa+kHyIesfTm/SzeK/PY9rDwZKjuyS8o22GJXGEScJomK1cjMESH/J+t8Hffaj88BjGHNczvcnXAjq6y73VJQ9DiGLD4zmFquQMxDu0Tf kevin@jelerak.scrye.com
|
||||
|
||||
#lmacken
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDefONrBaBJlCxKtDwkYWVhf96lMhRQfwVJyBoBd4Pk6TqKMlAu2eST1xRZlV4cJSxAWgZpOaFgqJ5EGd6mq8PvVk+mKXdtX7CAoWm4f3c6otUFsFDCTw3gVvYSlEk23XBHuACsbAVNL4HmP+9C7PxQBePukbMBFD2smsyQkPcX7lZw+lDJW5lOTz3dHAA92bcopDycxRDI99gGkawzjlmxpm2C9nhRabKS6mpGw3N64d8hwHkkFbtHY7rS0/0Cka0geYYYv0NVki1IIctkhZE9LndcWbVcVe1pIlR0RyW2sorfgCgoa5fRZZhukUCtspdv981h/0b87RpRVUJKuRd1 lmacken@tomservo
|
||||
|
||||
#mdomsch
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsmLoA/97DrE7roCHOY7NdB5TV/g7oxAsk74HgHcFRYAbn/rkoa7r9ZsgR7qzwd6Z+5Z77qFqvl1Bs3XtJf+1vJ3kwdcNFdKTw1DgTdE/rNPI7QzUgXKKKv/WCiU6UDBX4HHWq8Yuq4tkr/yepS8sLzMz2e0pHU4uWFQuvr5ttP9ABGohhDnPr0IcaT5vm+uBTJItJBrhqGws2fnVxhWEm8Y96AZb2vFZVwiMdcKKqfVZby3/wTuEtaDbv0krQNtLJcjaOTWLHWnxJEvLWSdFgkuIDvoNKR7ZV2lsmh5UD/smStgf8TkORR59r63dp2kWAn0/Jl59ARsdXDXGCiduF3GamxglTUA+kYbkN/PBQbl6o+nNKy4Q5TI53WNmhpdsbEJWCjzT+V1ju5JejFEHIhnWyBoBUWB2NKxWaSlToI2B9E0iJ0HK68IlA7bO4X7SD8q5cZBVTKMByFxt9uQXFeZeG7QRCPIsg6bXsirnFn5028iz+RfVFe3Mavp18v1hObvH6SDTczQauuAhTwYOtphaPZj+iHbaKvKndvlOWdGoyrNxgcx+t4loyEEcEWD0Astdp0bZD39nag94PD7hnoENOC0oE6mbtyUuSCGrU6ogee8qxYAt0AP3Rq1LLaRWXqe/1rM5A9oaDNwNkWA/JWbJbZQf0vvWTZmTib3rfew== mdomsch@fedoraproject.org
|
||||
|
||||
#mmcgrath
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7U0WbKLL/D6iR03/vdDZJ8Lkj1jjAkindSvC4PkXVgi6qJo1YBZnIgsmoQopYcra2yzHFt58crygIh79P/rpQowWY99W+Sk4kB9UNuiAiX/LRi+1YdxwCKcRNTVOwuji6MGZoscACERmIjPY6P1oFPERoXhUkOuzPcrDK/0z/Bp9dpNRVZE/0zN6dvHA9QODLGvcFtgnX73SbZfoIbaVP/37IvOZvjGI1jxC5DwCmY+ihM13GpELP6BM8iihlnl1pjk1vtqPxD9g9Llr14Sc6cZJKl1WCulqhde4SEMOjpMJ8J8cGYBSsdh49hB36pdKQuTTnuCXpEt5Tl8PUKCrr mmcgrath@desktop.mmcgrath.net
|
||||
|
||||
#notting
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3eVd6Ccegp1r1mhm7tPnlGUcw0zsAbR2p9hrFZ7RKxdIponuVV9ix4lgwpNEVDs0j4vxAApeLpJrsV8R8+YLUZO3Mzi+2s8nM8LXrKHtJT9wKKqoU3O/lC79drbWk3EMgETyP61Zpjkub0hwG2MjviPee63zCuRbxzxyalzk+AtwkRSxYaS2Ha0uKxGDiq1c/Iu6HRgm8HrtW+Pr6QbSSoHLhGUpR0HkgoC6852xXGhrRMkzXXbD9L6vaK9F39YmzD7Z8yey+xDTFW529avkEIWDeqBpbae+HjKqEQaBx71/rcmXhqKYrEagzUGpS8Bwskp3JMksd/v9tMuUhGQ2XaooCeKzvM0KnVUk/Q031ZtjNYxLpy/rEqbyt18+8wYOvVoGgnRZ/yJ/UVwYbGJrttYrrQmaJv7b357bkgDJobkIki+zGzi1xkvb85JWEt0mfh38H2vCnpwQtSAIyF/hmrS+1xsD/oAoc83IUhsVYcDhLbBEVKMX2IsJLMAPwCE6GexRYyVE5vEN4PMV9A8VmGuIC3IzkPEbStdtlbP4ttNKtfwS+MrY+ceAABDixls6xpedgT1he44R+7C1p+w4uj4TnYReLVce6+KgfJ6mz8CTXVULLWM4l2H3PylEUyoHGRDpVanGAvm7h2D0HgxErWIkjZkL79GFhzQc1xjzixQ== notting@nostromo.devel.redhat.com
|
||||
|
||||
#ricky
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDAeAohiRJ2v/RO7R9GS93TF92Gc9ixK6HM7wlbMdlZ4yYAbeoEX8VpeNaSTfo/Nw3zazr9VpmpHg+H70K8ljQsPgRwcgpetRVpF55M5FYjqM5oM+N94HV3nSGcnWbSIho1R31DaDH2ptxVqgh2m5DG7Bc45w9Bd4wjfdQ8nBrGv93tuH7X/cee4g6GvexLm5nXhAngdEmiyxw5MHuJAvj+54l4wMXRWpeF6XlI2iamW42nLSfRMCFkGNiXvBm8zkfkeH2L7I2cNKXXoP/cPCd3G/teIsI9FDqYpZ6CS0zMkWhlTuh7rlCjc9+nJsLdDLgwhb75skiUOOfimGvCCxWeHuCsSL+KpCu4AgI9UAVgO6xblDlmbQXxlGopep29U/s00W/0qv3Zp8Ks4Za0xHdoIwHiaLM0OYymFaNDd3ZqFG0FN23ZjcGqUmFGhGfUQRDt72+e9HtXlBJ0mUaCX9+e4wFGTVciG1/5CKsLHCaLRf+knsWXrv2zcv9BoZ9SCAK32zCZw05wjcmr7jYDCTLmtC6kEBNaOeE9Qqi2oomo4ji8ybg+Qq+1BwOtJKExvmZaooBZud0qd24HmCU0/0ysw732jGcqexzxsCR0VArd+7LKexOD7KwMW0VUss6fdOWac9gwCLx9FaKYh8mVvcQjKhKGI3aO2sXRUWSbBJw8w== ricky@alpha.rzhou.org
|
||||
|
||||
#skvidal
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjlnCEiFMrKpkiIBjs5IW1+RXDald3aKvTszj0hUw9Gl6w3vt3RAiqTD/XRKcNdP0+pVIK/I4KexKfZzemNZ8UYmZ+a9EK+Gj7OQbJv7TQDeR0zyJ8ZgFXaWoN+CnWXLO2mp9poysUR6CILjaDJt4GDxJaD+bebRu+zxUQSlgrjObhIUTSfwsEJu++zK+fy4+xSEMG7SANEJHd+zOAw6+isLnnbp8qY2fs3reKpc8XPkyJscLU4BQV2cGXwlPUhzPVv/itUUV/uWHeAqoz2i5XG4C0/BXk6D85qkGIyE08Nl3COxn6giivrdTIH6W4dUtBdYgTMZ3RgMHL9ClLpS17 skvidal@opus
|
||||
|
||||
#smooge
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAxnzCHH11nDM1m7yvqo6Uanq5vcZjBcs/mr3LccxwJ59ENzSXwUgEQy/P8vby9VKMwsskoaqZcvJdOSZBFhNV970NTPb69OIXPQAl/xhaLwiJOn606fB+/S8WepeuntS0qLiebbEiA9vIQLteZ+bWl1s/didD/sFo3/wItoTGA4GuShUu1AyWJx5Ue7Y34rwGR+kIvDoy2GHUcunn2PjGt4r3v2vpiR8GuK0JRupJAGYbYCiMBDRMkR0cgEyHW6+QQNqMlA6nRJjp94PcUMKaZK6Tc+6h5v8kLLtzuZ6ZupwMMC4X8sh85YcxqoW9DynrvO28pzaMNBHm7qr9LeY9PIhXscSa35GAcGZ7UwPK4aJAAuIzCf8BzazyvUM3Ye7GPCXHxUwY0kdXk+MHMVKFzZDChNp/ovgdhxNrw9Xzcs4yw7XYambN9Bk567cI6/tWcPuYLYD4ZJQP0qSXVzVgFEPss1lDcgd0k4if+pINyxM8eVFZVAqU+BMeDC+6W8HUUPgv6LiyTWs+xTXTuORwBTSF1pOqWB4LjqsCGIiMAc6n/xdALBGUN7qsuKDU6Q7bwPppaxypi4KCvuJsqW+8sDtMUaZ34I5Zo1q7cu03wqnOljUGoAY6IDn3J66F2KlPPyb/q3PDV3WbY/jnH16L29/xUA73nFUW1p+WXutwmSU= ssmoogen@ponyo.int.smoogespace.com
|
||||
|
||||
#spot
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFZ3AD/I0OfU84IrK573amZptucuBrDxHoue/c+PUsD3MGIA6QXRceq3ZkLuz25OAAu53hFxzCE4d6eVS299rVR8Cd+tVU8aqBdTHzdqv52Vs8zRfXMW69sV7fhwRLaQDcRTwY90Wmz2MbZmN996XmJDNtUIWI2mML+PBYEdO0PyiB2ttb7mmA3SwtC/rwEMJL2YHh+bTzlJ9W4BgFcFwizMXU3mk5uGp2/q3nKzEvgTROM8yWvqdM34cRYpjFKyOlpo6k3SPt76hgDUEIsAu6Ul1S0FHTCRMIihcxZOSN4frMtXVjX0NhW9mKcn1IRBpzd0Yon/gPB8OJ31ojIIop spot@pterodactyl
|
||||
|
||||
#toshio
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDfgKJEBuHFlFc8/IHDeIpdprNnAFQHkicXAFfAzIJSkhUaOJFjsulmgPZn2TJJpYqFAxYUjhWJOdrOwx7AHSg6gWu4TT4a0sTay+Z0eqZOShf5UL/M587DxJk1JZU8g812yDKZMc7Sv7K6zdteONnCvno1kALSg0F2MVMJXFjE/tSontkIRH6IuG19R19NGEj1h56uGwdfe78xjOmv5wk6RZBjaOKqiPSQKNqCKbY9Kyz6yrem2M5uxRK45u3wSPJdmopo8l/nwf0p6ydrUSL5C/aXGh7LPqh31eTBDQUbWHw9LQMk1SibMGQPwJt59lLMlzc5OQZAJEbadsDAgl6VVA6MZkBQROiK9E087kvPesMoGWE0KBgvTqzpBZj0uHATP9i097dv80gjupMyaePsnQOxk0wRho9nRkxRo18Drt3QPVND4YGHzahMe/YR2N83MkbnGoP8K+GsFhLMAp3NKh6yUofFxTgRiB6H8ULKf3CV+hlk0Z9RJR3CpgMTKILYHPlaleJqoP6sXg6tJxI0rUE+0jUKvaTj+N2gX0MjKfUINk5mTbjD2mdVrPtKOBvos2luNhY5nTDpJuAHQqnFHPlPw8l3lXC2VBWOjqfTeeS+qD7ArKe6F7IO5ZNxJ2mTUuodhaPySta1MS37DWoz6UqeJu+wKIsHok90+EU4aAvUABh3RXSQA1E3IaxkooMhhrdIQO6K4L0M+CZ7lP35sW5pnwsN4sFlPec9Xn5e15LTlb9yFlx7Nm4DE2SX1s9QyMRE7z0LNO0X7wiihojuyQM6OQwc+ZaaDw5HerBisX/3LcC9osVLQQg1pt91YcCczUQ08qfUJV6aOD962K+EGzVFQGGauJDzgEH9BHQg7QwCWr0f3mu8/TNBzys2c0YsywDUc3AT1KP6TEJcR/dy6WbhJD3qyO/BLfCzRrHUOIaz+WbwmfTX8tGEQnVV5sEkZ39PWA1hRQ83b3MNV8cRJl+h/FnTk62yM4ZqGu73+x8JiEG3HAJp9/xYfNSwg8++PojJBXe+yM6DrTh5fTnBhxatLEKB658p8jTqJtF4+YD9D8+L39xEns6GQ7FphNqTC6IcpXyqq+zNuzF7vs/T+5n7978dUs3sK6YpBX4BlDxK6MsRF1WYqajEVeBJEMwdX2rfGkN9B5GfWdmdrzBjZQ6yyvlx5Dg++qgxpMiVOXSnw5v7H03PrT1we9wKre/2SQ1A2Oq/UDt/7tR2cMLoaPDNBpFT1W44LJB7o9iDT9YHUG3dC7R8JoeJ5YjyFmxbUQ5xg1oHnrBaPrGCuEYdQWhuDmp9Px2yRu8Agxzr9rNCZ/W8nWJVmvwvlXoldrum2rAECx0wiWqBhQ/+eX65 badger@unaka.lan
|
||||
|
||||
#ansible root key
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmS3g5fSXizcCqKMI1n5WPFrfMyu7BMrMkMYyck07rB/cf2orO8kKj5schjILA8NYJFStlv2CGRXmQlendj523FPzPmzxvTP/OT4qdywa4LKGvAxOkRGCMMxWzVFLdEMzsLUE/+FLX+xd1US9UPLGRsbMkdz4ORCc0G8gqTr835H56mQPI+/zPFeQjHoHGYtQA1wnJH/0LCuFFfU82IfzrXzFDIBAA5i2S+eEOk7/SA4Ciek1CthNtqPX27M6UqkJMBmVpnAdeDz2noWMvlzAAUQ7dHL84CiXbUnF3hhYrHDbmD+kEK+KiRrYh3PT+5YfEPVI/xiDJ2fdHGxY7Dr2TQ== root@lockbox01.phx2.fedoraproject.org
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDnI+8JwOdXUO6T7gI6oXHUG4oQJsMsCwEGnRBjU4po93i9g9C5sShgqJMvBI2wzDdgL/xOFJeHuo+WTP6W/oiv8KHEco3wXSI4OlsPanORGn2TajwzEaYlfxJNlQPvmuxFxcrfkPF8cOGa0DRNTLZK7abO3tKfZV7IJyNX3Z0LFZ+VwcJBy1ryg0GonMYkjEreiAgJyGCJ1crnKiRMPSu/QONb0MTytMlJRtc/Lfi/KkT8C/LQ/e3zA5DWo9Ykb79M1k4MmtmE8mIUlWUQ9hagMhCj3/6Uze04H48fpYzDPr6AHU6rqxLTdBGgLCeSIUkE1ReZpAk2E+QAB/fTliydT93ig5i2RDt3YHcAa994C85bc0D+A21u0H/LzR1wbIItx+MpOkZePHevDSe4y8ULx0cUiEHxmTTZ2C6j+1EqaP5PeWEqlU3iXTgiqOzTEwfEaH7nScBpGbFmPnzdgO7xLuKebnvWjGu6d8Jd41KN5dN5WNMJaNEXBl65ySfeQYCCX/JZ5bfvC/07zAKj0/RKOFMyS07rb0rKh3EBcRx/tHgCq0hJ23NwfkShchj7v2Zh+JjgHKBv1+ZiIwnx2/WuYwvKwyqXZ5Jpy+lgxcC7l11w1ZN3tCd66E6NdU8AJIOz0n+trIorsipQBY0In3ZBLUU0PUYwno73e7ZabgcE7Q== patrick-new@fedora.thuis.local
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDep2yv5JTFJ0IdCiqumMFfNdu3H5Ej/rVVDEotS+3n5+1plKvajPXOA9c/0RLrBC/vL8LqDVrxBaiCvPFCIRN9a3Y1ru3Dwg++NmcMEvYq/H3SMHhZsH1yjlCD2r38znpX+D+CBMQnn7F5jqYFAnaMeESrgGGFFANfJN9HdHjb6eIrBGJyUOJ2JnZnhLFT5y7ru2xRMDmgsO3U+crmecYAeX/4iUadUxit36defAniVOA/3Jwva4Gjz73vIDTHNy1mxB8Y2ZBBl9WcL4qHc6wnAyFaiULcT5++Gdjn+MIyL86G/7mIIgC+fcVk/5JrdwMBiAZYMUZO/pzPobOe0spF threebean@marat
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2xAeq5uO72kY4mSFgFl9ZSveiAqe4tUv8hemrxwZH+w24RFOGrW1nOV+hjQhRpYVNwvqJkrd9N7VY/HXkd9df2AgQyYoiVfeMPTA7lB0/e/S1Bd6XGdWudvqRU1O6Rug0j3RQOuz7WDJgnanBVcBl8+X7EaPGpv9aILgh6CJDOVAO2GgaFdzI7CHtR99CMqNG7BsQF8C9Y8ALK+8HOPRE0R1wzgaAw85HTo0gyIWcrZqr4HI/QDuLjUQ6AZSgzE7dTiwZuFnUjLBnL0YP1bxJglt9IFx6r6jvdp/yMD+Bn/91WvmBL/AD+GIQ/ZydoeLo+JQW22ibiX/SzdAE4Cd3 pingou@FedoraProject
|
||||
|
||||
|
||||
2
files/copr/boto
Normal file
2
files/copr/boto
Normal file
@@ -0,0 +1,2 @@
|
||||
[Boto]
|
||||
https_validate_certificates = False
|
||||
58
files/copr/copr-be.conf
Normal file
58
files/copr/copr-be.conf
Normal file
@@ -0,0 +1,58 @@
|
||||
[backend]
|
||||
|
||||
# URL where are results visible
|
||||
# default is http://copr
|
||||
results_baseurl=http://copr-be.cloud.fedoraproject.org/results
|
||||
|
||||
# ??? What is this
|
||||
# default is http://coprs/rest/api
|
||||
#frontend_url=http://copr-fe.cloud.fedoraproject.org/backend
|
||||
frontend_url=http://172.16.5.6/backend
|
||||
|
||||
# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
|
||||
# default is PASSWORDHERE but you really should change it. really.
|
||||
frontend_auth={{ copr_backend_password }}
|
||||
|
||||
# path to ansible playbook which spawns builder
|
||||
# see /usr/share/copr*/playbooks/ for examples
|
||||
# default is /etc/copr/builder_playbook.yml
|
||||
spawn_playbook=/home/copr/provision/builderpb.yml
|
||||
|
||||
# path to ansible playbook which terminate builder
|
||||
# default is /etc/copr/terminate_playbook.yml
|
||||
terminate_playbook=/home/copr/provision/terminatepb.yml
|
||||
|
||||
# directory where jobs are stored
|
||||
# no defaults
|
||||
jobsdir=/var/lib/copr/jobs
|
||||
|
||||
# directory where results are stored
|
||||
# should be accessible from web using 'results_baseurl' URL
|
||||
# no default
|
||||
destdir=/var/lib/copr/public_html/results
|
||||
|
||||
# default is 10
|
||||
sleeptime=30
|
||||
|
||||
# default is 8
|
||||
num_workers=8
|
||||
|
||||
# path to log file
|
||||
# default is /var/log/copr/backend.log
|
||||
logfile=/var/log/copr/backend.log
|
||||
|
||||
# default is /var/log/copr/workers/
|
||||
worker_logdir=/var/log/copr/workers/
|
||||
|
||||
# exit on worker failure
|
||||
# default is false
|
||||
#exit_on_worker=false
|
||||
|
||||
# publish fedmsg notifications from workers if true
|
||||
# default is false
|
||||
#fedmsg_enabled=false
|
||||
fedmsg_enabled=true
|
||||
|
||||
[builder]
|
||||
# default is 1800
|
||||
timeout=3600
|
||||
57
files/copr/copr-be.conf-dev
Normal file
57
files/copr/copr-be.conf-dev
Normal file
@@ -0,0 +1,57 @@
|
||||
[backend]
|
||||
|
||||
# URL where are results visible
|
||||
# default is http://copr
|
||||
results_baseurl=http://copr-be-dev.cloud.fedoraproject.org/results
|
||||
|
||||
# ??? What is this
|
||||
# default is http://coprs/rest/api
|
||||
frontend_url=http://copr-fe-dev.cloud.fedoraproject.org/backend
|
||||
|
||||
# must have same value as BACKEND_PASSWORD from have frontend in /etc/copr/copr.conf
|
||||
# default is PASSWORDHERE but you really should change it. really.
|
||||
frontend_auth=PASSWORDHERE
|
||||
|
||||
# path to ansible playbook which spawns builder
|
||||
# see /usr/share/copr*/playbooks/ for examples
|
||||
# default is /etc/copr/builder_playbook.yml
|
||||
spawn_playbook=/home/copr/provision/builderpb.yml
|
||||
|
||||
# path to ansible playbook which terminate builder
|
||||
# default is /etc/copr/terminate_playbook.yml
|
||||
terminate_playbook=/home/copr/provision/terminatepb.yml
|
||||
|
||||
# directory where jobs are stored
|
||||
# no defaults
|
||||
jobsdir=/var/lib/copr/jobs
|
||||
|
||||
# directory where results are stored
|
||||
# should be accessible from web using 'results_baseurl' URL
|
||||
# no default
|
||||
destdir=/var/lib/copr/public_html/results
|
||||
|
||||
# default is 10
|
||||
sleeptime=30
|
||||
|
||||
# default is 8
|
||||
num_workers=5
|
||||
|
||||
# path to log file
|
||||
# default is /var/log/copr/backend.log
|
||||
logfile=/var/log/copr/backend.log
|
||||
|
||||
# default is /var/log/copr/workers/
|
||||
worker_logdir=/var/log/copr/workers/
|
||||
|
||||
# exit on worker failure
|
||||
# default is false
|
||||
#exit_on_worker=false
|
||||
|
||||
# publish fedmsg notifications from workers if true
|
||||
# default is false
|
||||
#fedmsg_enabled=false
|
||||
|
||||
|
||||
[builder]
|
||||
# default is 1800
|
||||
timeout=3600
|
||||
@@ -5,6 +5,6 @@ if [ -f /etc/bashrc ]; then
|
||||
. /etc/bashrc
|
||||
fi
|
||||
|
||||
if [ -f /srv/copr-work/copr/cloud/ec2rc.sh ]; then
|
||||
. /srv/copr-work/copr/cloud/ec2rc.sh
|
||||
if [ -f /home/copr/cloud/ec2rc.sh ]; then
|
||||
. /home/copr/cloud/ec2rc.sh
|
||||
fi
|
||||
|
||||
30
files/copr/fe/copr.conf
Normal file
30
files/copr/fe/copr.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
# Directory and files where is stored Copr database files
|
||||
DATA_DIR = '/var/lib/copr/data'
|
||||
DATABASE = '/var/lib/copr/data/copr.db'
|
||||
OPENID_STORE = '/var/lib/copr/data/openid_store'
|
||||
WHOOSHEE_DIR = '/var/lib/copr/data/whooshee'
|
||||
|
||||
SECRET_KEY = {{ copr_secret_key }}
|
||||
BACKEND_PASSWORD = {{ copr_backend_password }}
|
||||
|
||||
# restrict access to a set of users
|
||||
#USE_ALLOWED_USERS = False
|
||||
#ALLOWED_USERS = ['bonnie', 'clyde']
|
||||
|
||||
SQLALCHEMY_DATABASE_URI = {{ copr_database_uri }}
|
||||
|
||||
# Token length, defaults to 30 (max 255)
|
||||
#API_TOKEN_LENGTH = 30
|
||||
|
||||
# Expiration of API token in days
|
||||
#API_TOKEN_EXPIRATION = 180
|
||||
|
||||
# logging options
|
||||
#SEND_LOGS_TO = ['root@localhost']
|
||||
#LOGGING_LEVEL = logging.ERROR
|
||||
|
||||
DEBUG = False
|
||||
SQLALCHEMY_ECHO = False
|
||||
|
||||
CSRF_ENABLED = True
|
||||
WTF_CSRF_ENABLED = True
|
||||
@@ -7,15 +7,58 @@ WSGISocketPrefix /var/run/wsgi
|
||||
|
||||
WSGIPassAuthorization On
|
||||
WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe threads=5
|
||||
WSGIScriptAlias / /srv/copr-fe/copr/coprs_frontend/application
|
||||
WSGIScriptAlias / /usr/share/copr/coprs_frontend/application
|
||||
WSGIProcessGroup 127.0.0.1
|
||||
|
||||
ErrorLog logs/error_coprs
|
||||
CustomLog logs/access_coprs common
|
||||
|
||||
<Directory /srv/copr-fe/copr>
|
||||
<Directory /usr/share/copr>
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
SSLEngine on
|
||||
SSLProtocol all -SSLv2
|
||||
#optimeize on speed
|
||||
SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5
|
||||
SSLHonorCipherOrder on
|
||||
|
||||
SSLCertificateFile /etc/pki/tls/ca.crt
|
||||
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
|
||||
ServerName copr-fe.cloud.fedoraproject.org:443
|
||||
|
||||
WSGIPassAuthorization On
|
||||
#WSGIDaemonProcess 127.0.0.1 user=copr-fe group=copr-fe threads=5
|
||||
WSGIScriptAlias / /usr/share/copr/coprs_frontend/application
|
||||
WSGIProcessGroup 127.0.0.1
|
||||
|
||||
ErrorLog logs/error_coprs
|
||||
CustomLog logs/access_coprs common
|
||||
|
||||
<Directory /usr/share/copr>
|
||||
WSGIApplicationGroup %{GLOBAL}
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
<IfModule mod_status.c>
|
||||
ExtendedStatus On
|
||||
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Require all denied
|
||||
Require host localhost .redhat.com
|
||||
</Location>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mpm_prefork_module>
|
||||
StartServers 8
|
||||
MinSpareServers 8
|
||||
MaxSpareServers 20
|
||||
MaxClients 50
|
||||
MaxRequestsPerChild 10000
|
||||
</IfModule>
|
||||
|
||||
|
||||
13
files/copr/fe/pg/pg_hba.conf
Normal file
13
files/copr/fe/pg/pg_hba.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
local coprdb copr-fe md5
|
||||
host coprdb copr-fe 127.0.0.1/8 md5
|
||||
host coprdb copr-fe ::1/128 md5
|
||||
local coprdb postgres ident
|
||||
|
||||
# TYPE DATABASE USER ADDRESS METHOD
|
||||
|
||||
# "local" is for Unix domain socket connections only
|
||||
local all all peer
|
||||
# IPv4 local connections:
|
||||
host all all 127.0.0.1/32 ident
|
||||
# IPv6 local connections:
|
||||
host all all ::1/128 ident
|
||||
10
files/copr/fe/yum/copr.repo
Normal file
10
files/copr/fe/yum/copr.repo
Normal file
@@ -0,0 +1,10 @@
|
||||
[Copr]
|
||||
name=Copr
|
||||
failovermethod=priority
|
||||
#baseurl=http://copr-be.cloud.fedoraproject.org/results/msuchy/copr/fedora-19-x86_64/
|
||||
# 172.16.5.4 is copr-be.cloud.fedoraproject.org
|
||||
# see https://fedorahosted.org/fedora-infrastructure/ticket/4025
|
||||
baseurl=http://172.16.5.4/results/msuchy/copr/fedora-19-x86_64/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
|
||||
4
files/copr/forward
Normal file
4
files/copr/forward
Normal file
@@ -0,0 +1,4 @@
|
||||
msuchy+coprmachine@redhat.com
|
||||
kevin@scrye.com
|
||||
nb@fedoraproject.org
|
||||
sgallagh@redhat.com
|
||||
@@ -90,7 +90,7 @@ server.port = 80
|
||||
##
|
||||
## Use IPv6?
|
||||
##
|
||||
server.use-ipv6 = "enable"
|
||||
server.use-ipv6 = "disable"
|
||||
|
||||
##
|
||||
## bind to a specific IP
|
||||
@@ -112,7 +112,7 @@ server.groupname = "lighttpd"
|
||||
##
|
||||
## Document root
|
||||
##
|
||||
server.document-root = "/srv/copr-repo"
|
||||
server.document-root = "/var/lib/copr/public_html"
|
||||
|
||||
##
|
||||
## The value for the "Server:" response field.
|
||||
@@ -445,3 +445,11 @@ server.upload-dirs = ( "/var/tmp" )
|
||||
#include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
|
||||
##
|
||||
#######################################################################
|
||||
|
||||
$SERVER["socket"] == ":443" {
|
||||
ssl.engine = "enable"
|
||||
ssl.pemfile = "/etc/lighttpd/coprs-be.fedoraproject.org.pem"
|
||||
ssl.ca-file = "/etc/lighttpd/coprs-be.fedoraproject.org.crt"
|
||||
ssl.disable-client-renegotiation = "enable"
|
||||
ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
|
||||
}
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
# location of inventory file, eliminates need to specify -i
|
||||
|
||||
hostfile = /srv/copr-work/provision/inventory
|
||||
hostfile = /home/copr/provision/inventory
|
||||
|
||||
# location of ansible library, eliminates need to specify --module-path
|
||||
|
||||
library = /srv/copr-work/provision/library:/usr/share/ansible
|
||||
library = /home/copr/provision/library:/usr/share/ansible
|
||||
|
||||
# default module name used in /usr/bin/ansible when -m is not specified
|
||||
|
||||
@@ -48,7 +48,11 @@ sudo_user=root
|
||||
|
||||
# connection to use when -c <connection_type> is not specified
|
||||
|
||||
transport=paramiko
|
||||
#transport=paramiko
|
||||
transport=ssh
|
||||
|
||||
# this is needed for paramiko, ssh already have this said in .ssh/config
|
||||
host_key_checking = False
|
||||
|
||||
# remote SSH port to be used when --port or "port:" or an equivalent inventory
|
||||
# variable is not specified.
|
||||
@@ -69,11 +73,12 @@ remote_user=root
|
||||
|
||||
# additional plugin paths for non-core plugins
|
||||
|
||||
action_plugins = /usr/lib/python2.6/site-packages/ansible/runner/action_plugins:/srv/copr-work/provision/action_plugins/
|
||||
|
||||
action_plugins = /usr/lib/python2.7/site-packages/ansible/runner/action_plugins:/home/copr/provision/action_plugins/
|
||||
|
||||
private_key_file=/home/copr/.ssh/id_rsa
|
||||
|
||||
[paramiko_connection]
|
||||
record_host_keys=False
|
||||
|
||||
# nothing to configure yet
|
||||
|
||||
|
||||
@@ -12,19 +12,20 @@
|
||||
|
||||
tasks:
|
||||
- name: spin it up
|
||||
local_action: ec2 keypair=${keypair} image=${image} type=${instance_type} wait=true group=${security_group}
|
||||
local_action: ec2 keypair={{ keypair }} image={{ image }} type={{ instance_type }} wait=true group={{ security_group }}
|
||||
register: inst_res
|
||||
|
||||
- name: get its internal ip b/c openstack is sometimes stupid
|
||||
local_action: shell euca-describe-instances ${inst_res.instances[0].id} | grep INSTANCE | cut -f 18
|
||||
local_action: shell euca-describe-instances {{ inst_res.instances[0].id }} | grep INSTANCE | cut -f 18
|
||||
register: int_ip
|
||||
|
||||
- name: add it to the special group
|
||||
local_action: add_host hostname=${int_ip.stdout} groupname=builder_temp_group
|
||||
local_action: add_host hostname={{ int_ip.stdout }} groupname=builder_temp_group
|
||||
|
||||
- name: wait for the host to be hot
|
||||
local_action: wait_for host=${int_ip.stdout} port=22 delay=5 timeout=600
|
||||
local_action: wait_for host={{ int_ip.stdout }} port=22 delay=5 timeout=600
|
||||
|
||||
- debug: msg="IP={{ int_ip.stdout }}"
|
||||
|
||||
- hosts: builder_temp_group
|
||||
user: root
|
||||
@@ -34,21 +35,27 @@
|
||||
tasks:
|
||||
- name: edit hostname to be instance name
|
||||
action: shell hostname `curl -s http://169.254.169.254/2009-04-04/meta-data/instance-id`
|
||||
|
||||
|
||||
- name: install pkgs
|
||||
action: yum state=present pkg={{ item }}
|
||||
with_items:
|
||||
- rsync
|
||||
- openssh-clients
|
||||
- libselinux-python
|
||||
- libsemanage-python
|
||||
|
||||
- name: add repos
|
||||
action: copy src=$files/$item dest=/etc/yum.repos.d/$item
|
||||
action: copy src={{ files }}/{{ item }} dest=/etc/yum.repos.d/{{ item }}
|
||||
with_items:
|
||||
- builder.repo
|
||||
- epel6.repo
|
||||
|
||||
- name: install pkgs
|
||||
action: yum state=present pkg=$item
|
||||
- name: install additional pkgs
|
||||
action: yum state=present pkg={{ item }}
|
||||
with_items:
|
||||
- mock
|
||||
- createrepo
|
||||
- yum-utils
|
||||
- rsync
|
||||
- openssh-clients
|
||||
|
||||
- name: make sure newest rpm
|
||||
action: yum name=rpm state=latest
|
||||
@@ -60,16 +67,15 @@
|
||||
action: file state=directory path=/home/mockbuilder/.ssh mode=0700 owner=mockbuilder group=mockbuilder
|
||||
|
||||
- name: mockbuilder authorized_keys
|
||||
action: authorized_key user=mockbuilder key='$FILE(${files}/buildsys.pub)'
|
||||
action: authorized_key user=mockbuilder key='{{ lookup('file', '/home/copr/provision/files/buildsys.pub') }}'
|
||||
|
||||
- name: put updated mock configs into /etc/mock
|
||||
action: copy src=$files/mock/$item dest=/etc/mock
|
||||
action: copy src={{ files }}/mock/{{ item }} dest=/etc/mock
|
||||
with_items:
|
||||
- site-defaults.cfg
|
||||
- epel-5-x86_64.cfg
|
||||
- epel-5-i386.cfg
|
||||
|
||||
- name: put updated mockchain into /usr/bin
|
||||
action: copy src=$files/mockchain dest=/usr/bin/mockchain mode=0755 owner=root group=root
|
||||
|
||||
- fedora-20-x86_64.cfg
|
||||
- fedora-20-i386.cfg
|
||||
- epel-7-x86_64.cfg
|
||||
|
||||
|
||||
@@ -5,3 +5,19 @@ enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=http://infrastructure.fedoraproject.org/repo/RPM-GPG-KEY-INFRASTRUCTURE
|
||||
|
||||
[msuchy-Mock]
|
||||
name=Copr repo for Mock owned by msuchy
|
||||
description=Mock for RHEL6 with patch from https://bugzilla.redhat.com/show_bug.cgi?id=1028438 and https://bugzilla.redhat.com/show_bug.cgi?id=1034805
|
||||
baseurl=http://172.16.5.4/results/msuchy/Mock/epel-6-$basearch/
|
||||
skip_if_unavailable=True
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
[msuchy-scl-utils]
|
||||
name=Copr repo for scl-utils owned by msuchy
|
||||
description=scl-utils with patch from https://bugzilla.redhat.com/show_bug.cgi?id=985233
|
||||
baseurl=http://172.16.5.4/results/msuchy/scl-utils/epel-6-$basearch/
|
||||
skip_if_unavailable=True
|
||||
gpgcheck=0
|
||||
enabled=1
|
||||
|
||||
|
||||
@@ -3,8 +3,12 @@ config_opts['target_arch'] = 'i386'
|
||||
config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64')
|
||||
config_opts['chroot_setup_cmd'] = 'install buildsys-build'
|
||||
config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
|
||||
config_opts['macros'] = {}
|
||||
if not config_opts.has_key('macros'): config_opts['macros'] = {}
|
||||
config_opts['macros']['%__arch_install_post'] = '%{nil}'
|
||||
config_opts['macros']['%rhel'] = '5'
|
||||
config_opts['macros']['%dist'] = '.el5'
|
||||
config_opts['macros']['%el5'] = '1'
|
||||
config_opts['releasever'] = '5'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
|
||||
@@ -3,8 +3,12 @@ config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'install buildsys-build'
|
||||
config_opts['dist'] = 'el5' # only useful for --resultdir variable subst
|
||||
config_opts['macros'] = {}
|
||||
if not config_opts.has_key('macros'): config_opts['macros'] = {}
|
||||
config_opts['macros']['%__arch_install_post'] = '%{nil}'
|
||||
config_opts['macros']['%rhel'] = '5'
|
||||
config_opts['macros']['%dist'] = '.el5'
|
||||
config_opts['macros']['%el5'] = '1'
|
||||
config_opts['releasever'] = '5'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
|
||||
45
files/copr/provision/files/mock/epel-7-x86_64.cfg
Normal file
45
files/copr/provision/files/mock/epel-7-x86_64.cfg
Normal file
@@ -0,0 +1,45 @@
|
||||
config_opts['chroothome'] = '/builddir'
|
||||
config_opts['basedir'] = '/var/lib/mock'
|
||||
config_opts['root'] = 'epel-7-x86_64'
|
||||
config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils findutils gawk gcc gcc-c++ grep gzip info make patch redhat-release-server redhat-rpm-config rpm-build sed shadow-utils tar unzip util-linux which xz'
|
||||
config_opts['dist'] = 'el7' # only useful for --resultdir variable subst
|
||||
config_opts['macros'] = {}
|
||||
config_opts['macros']['%dist'] = '.el7'
|
||||
config_opts['macros']['%rhel'] = '7'
|
||||
config_opts['macros']['%el7'] = '1'
|
||||
config_opts['macros']['%_topdir'] = '/builddir/build'
|
||||
config_opts['macros']['%_rpmfilename'] = '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'
|
||||
config_opts['releasever'] = '7'
|
||||
|
||||
config_opts['plugin_conf']['root_cache_enable'] = False
|
||||
config_opts['plugin_conf']['yum_cache_enable'] = False
|
||||
config_opts['plugin_conf']['ccache_enable'] = False
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
logfile=/var/log/yum.log
|
||||
reposdir=/dev/null
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[beta]
|
||||
name=beta
|
||||
baseurl=http://ftp.redhat.com/redhat/rhel/beta/7/x86_64/os/
|
||||
|
||||
[epel]
|
||||
name=Extra Packages for Enterprise Linux 7 - $basearch
|
||||
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
|
||||
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
|
||||
failovermethod=priority
|
||||
enabled=1
|
||||
"""
|
||||
62
files/copr/provision/files/mock/fedora-20-i386.cfg
Normal file
62
files/copr/provision/files/mock/fedora-20-i386.cfg
Normal file
@@ -0,0 +1,62 @@
|
||||
config_opts['root'] = 'fedora-20-i386'
|
||||
config_opts['target_arch'] = 'i686'
|
||||
config_opts['legal_host_arches'] = ('i386', 'i586', 'i686', 'x86_64')
|
||||
config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
|
||||
config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst
|
||||
config_opts['releasever'] = '20'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
reposdir=/dev/null
|
||||
logfile=/var/log/yum.log
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[fedora]
|
||||
name=fedora
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=i386
|
||||
failovermethod=priority
|
||||
|
||||
[updates]
|
||||
name=updates
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=i386
|
||||
failovermethod=priority
|
||||
|
||||
[updates-testing]
|
||||
name=updates-testing
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/i386/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=fedora-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-debuginfo]
|
||||
name=updates-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=updates-testing-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=i386
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
62
files/copr/provision/files/mock/fedora-20-x86_64.cfg
Normal file
62
files/copr/provision/files/mock/fedora-20-x86_64.cfg
Normal file
@@ -0,0 +1,62 @@
|
||||
config_opts['root'] = 'fedora-20-x86_64'
|
||||
config_opts['target_arch'] = 'x86_64'
|
||||
config_opts['legal_host_arches'] = ('x86_64',)
|
||||
config_opts['chroot_setup_cmd'] = 'groupinstall buildsys-build'
|
||||
config_opts['dist'] = 'fc20' # only useful for --resultdir variable subst
|
||||
config_opts['releasever'] = '20'
|
||||
|
||||
config_opts['yum.conf'] = """
|
||||
[main]
|
||||
cachedir=/var/cache/yum
|
||||
debuglevel=1
|
||||
reposdir=/dev/null
|
||||
logfile=/var/log/yum.log
|
||||
retries=20
|
||||
obsoletes=1
|
||||
gpgcheck=0
|
||||
assumeyes=1
|
||||
syslog_ident=mock
|
||||
syslog_device=
|
||||
|
||||
# repos
|
||||
|
||||
[fedora]
|
||||
name=fedora
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-20&arch=x86_64
|
||||
failovermethod=priority
|
||||
|
||||
[updates]
|
||||
name=updates
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
|
||||
[updates-testing]
|
||||
name=updates-testing
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[local]
|
||||
name=local
|
||||
baseurl=http://kojipkgs.fedoraproject.org/repos/f20-build/latest/x86_64/
|
||||
cost=2000
|
||||
enabled=0
|
||||
|
||||
[fedora-debuginfo]
|
||||
name=fedora-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-debuginfo]
|
||||
name=updates-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-debug-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
|
||||
[updates-testing-debuginfo]
|
||||
name=updates-testing-debuginfo
|
||||
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-debug-f20&arch=x86_64
|
||||
failovermethod=priority
|
||||
enabled=0
|
||||
"""
|
||||
@@ -1,337 +0,0 @@
|
||||
#!/usr/bin/python -tt
|
||||
# by skvidal@fedoraproject.org
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
# copyright 2012 Red Hat, Inc.
|
||||
|
||||
# SUMMARY
|
||||
# mockchain
|
||||
# take a mock config and a series of srpms
|
||||
# rebuild them one at a time
|
||||
# adding each to a local repo
|
||||
# so they are available as build deps to next pkg being built
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
import optparse
|
||||
import tempfile
|
||||
import shutil
|
||||
from urlgrabber import grabber
|
||||
import time
|
||||
|
||||
mockconfig_path='/etc/mock'
|
||||
|
||||
def createrepo(path):
|
||||
if os.path.exists(path + '/repodata/repomd.xml'):
|
||||
comm = ['/usr/bin/createrepo', '--update', path]
|
||||
else:
|
||||
comm = ['/usr/bin/createrepo', path]
|
||||
cmd = subprocess.Popen(comm,
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
out, err = cmd.communicate()
|
||||
return out, err
|
||||
|
||||
def parse_args(args):
|
||||
parser = optparse.OptionParser('\nmockchain -r mockcfg pkg1 [pkg2] [pkg3]')
|
||||
parser.add_option('-r', '--root', default=None, dest='chroot',
|
||||
help="chroot config name/base to use in the mock build")
|
||||
parser.add_option('-l', '--localrepo', default=None,
|
||||
help="local path for the local repo, defaults to making its own")
|
||||
parser.add_option('-c', '--continue', default=False, action='store_true',
|
||||
dest='cont',
|
||||
help="if a pkg fails to build, continue to the next one")
|
||||
parser.add_option('-a','--addrepo', default=[], action='append',
|
||||
dest='repos',
|
||||
help="add these repo baseurls to the chroot's yum config")
|
||||
parser.add_option('--recurse', default=False, action='store_true',
|
||||
help="if more than one pkg and it fails to build, try to build the rest and come back to it")
|
||||
parser.add_option('--log', default=None, dest='logfile',
|
||||
help="log to the file named by this option, defaults to not logging")
|
||||
parser.add_option('--tmp_prefix', default=None, dest='tmp_prefix',
|
||||
help="tmp dir prefix - will default to username-pid if not specified")
|
||||
|
||||
|
||||
#FIXME?
|
||||
# figure out how to pass other args to mock?
|
||||
|
||||
opts, args = parser.parse_args(args)
|
||||
if opts.recurse:
|
||||
opts.cont = True
|
||||
|
||||
if not opts.chroot:
|
||||
print "You must provide an argument to -r for the mock chroot"
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if len(sys.argv) < 3:
|
||||
print "You must specifiy at least 1 package to build"
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
return opts, args
|
||||
|
||||
def add_local_repo(infile, destfile, baseurl, repoid=None):
|
||||
"""take a mock chroot config and add a repo to it's yum.conf
|
||||
infile = mock chroot config file
|
||||
destfile = where to save out the result
|
||||
baseurl = baseurl of repo you wish to add"""
|
||||
|
||||
try:
|
||||
config_opts = {}
|
||||
execfile(infile)
|
||||
if not repoid:
|
||||
repoid=baseurl.split('//')[1].replace('/','_')
|
||||
localyumrepo="""
|
||||
[%s]
|
||||
name=%s
|
||||
baseurl=%s
|
||||
enabled=1
|
||||
skip_if_unavailable=1
|
||||
metadata_expire=30
|
||||
cost=1
|
||||
""" % (repoid, baseurl, baseurl)
|
||||
|
||||
config_opts['yum.conf'] += localyumrepo
|
||||
br_dest = open(destfile, 'w')
|
||||
for k,v in config_opts.items():
|
||||
br_dest.write("config_opts[%r] = %r\n" % (k, v))
|
||||
br_dest.close()
|
||||
return True, ''
|
||||
except (IOError, OSError):
|
||||
return False, "Could not write mock config to %s" % destfile
|
||||
|
||||
return True, ''
|
||||
|
||||
def do_build(opts, cfg, pkg):
|
||||
|
||||
# returns 0, cmd, out, err = failure
|
||||
# returns 1, cmd, out, err = success
|
||||
# returns 2, None, None, None = already built
|
||||
|
||||
s_pkg = os.path.basename(pkg)
|
||||
pdn = s_pkg.replace('.src.rpm', '')
|
||||
resdir = '%s/%s' % (opts.local_repo_dir, pdn)
|
||||
resdir = os.path.normpath(resdir)
|
||||
if not os.path.exists(resdir):
|
||||
os.makedirs(resdir)
|
||||
|
||||
success_file = resdir + '/success'
|
||||
fail_file = resdir + '/fail'
|
||||
|
||||
if os.path.exists(success_file):
|
||||
return 2, None, None, None
|
||||
|
||||
# clean it up if we're starting over :)
|
||||
if os.path.exists(fail_file):
|
||||
os.unlink(fail_file)
|
||||
|
||||
mockcmd = ['/usr/bin/mock',
|
||||
'--configdir', opts.config_path,
|
||||
'--resultdir', resdir,
|
||||
'--uniqueext', opts.uniqueext,
|
||||
'-r', cfg, ]
|
||||
print 'building %s' % s_pkg
|
||||
mockcmd.append(pkg)
|
||||
cmd = subprocess.Popen(mockcmd,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE )
|
||||
out, err = cmd.communicate()
|
||||
if cmd.returncode == 0:
|
||||
open(success_file, 'w').write('done\n')
|
||||
ret = 1
|
||||
else:
|
||||
open(fail_file, 'w').write('undone\n')
|
||||
ret = 0
|
||||
|
||||
return ret, cmd, out, err
|
||||
|
||||
|
||||
def log(lf, msg):
|
||||
if lf:
|
||||
now = time.time()
|
||||
try:
|
||||
open(lf, 'a').write(str(now) + ':' + msg + '\n')
|
||||
except (IOError, OSError), e:
|
||||
print 'Could not write to logfile %s - %s' % (lf, str(e))
|
||||
print msg
|
||||
|
||||
|
||||
|
||||
def main(args):
|
||||
opts, args = parse_args(args)
|
||||
|
||||
# take mock config + list of pkgs
|
||||
cfg=opts.chroot
|
||||
pkgs=args[1:]
|
||||
mockcfg = mockconfig_path + '/' + cfg + '.cfg'
|
||||
|
||||
if not os.path.exists(mockcfg):
|
||||
print "could not find config: %s" % mockcfg
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if not opts.tmp_prefix:
|
||||
try:
|
||||
opts.tmp_prefix = os.getlogin()
|
||||
except OSError, e:
|
||||
print "Could not find login name for tmp dir prefix add --tmp_prefix"
|
||||
sys.exit(1)
|
||||
pid = os.getpid()
|
||||
opts.uniqueext = '%s-%s' % (opts.tmp_prefix, pid)
|
||||
|
||||
|
||||
# create a tempdir for our local info
|
||||
if opts.localrepo:
|
||||
local_tmp_dir = os.path.abspath(opts.localrepo)
|
||||
if not os.path.exists(local_tmp_dir):
|
||||
os.makedirs(local_tmp_dir)
|
||||
else:
|
||||
pre = 'mock-chain-%s-' % opts.uniqueext
|
||||
local_tmp_dir = tempfile.mkdtemp(prefix=pre, dir='/var/tmp')
|
||||
|
||||
os.chmod(local_tmp_dir, 0755)
|
||||
|
||||
if opts.logfile:
|
||||
opts.logfile = os.path.join(local_tmp_dir, opts.logfile)
|
||||
if os.path.exists(opts.logfile):
|
||||
os.unlink(opts.logfile)
|
||||
|
||||
log(opts.logfile, "starting logfile: %s" % opts.logfile)
|
||||
opts.local_repo_dir = os.path.normpath(local_tmp_dir + '/results/' + cfg + '/')
|
||||
|
||||
if not os.path.exists(opts.local_repo_dir):
|
||||
os.makedirs(opts.local_repo_dir, mode=0755)
|
||||
|
||||
local_baseurl="file://%s" % opts.local_repo_dir
|
||||
log(opts.logfile, "results dir: %s" % opts.local_repo_dir)
|
||||
opts.config_path = os.path.normpath(local_tmp_dir + '/configs/' + cfg + '/')
|
||||
|
||||
if not os.path.exists(opts.config_path):
|
||||
os.makedirs(opts.config_path, mode=0755)
|
||||
|
||||
log(opts.logfile, "config dir: %s" % opts.config_path)
|
||||
|
||||
my_mock_config = opts.config_path + '/' + os.path.basename(mockcfg)
|
||||
|
||||
# modify with localrepo
|
||||
res, msg = add_local_repo(mockcfg, my_mock_config, local_baseurl, 'local_build_repo')
|
||||
if not res:
|
||||
log(opts.logfile, "Error: Could not write out local config: %s" % msg)
|
||||
sys.exit(1)
|
||||
|
||||
for baseurl in opts.repos:
|
||||
res, msg = add_local_repo(my_mock_config, my_mock_config, baseurl)
|
||||
if not res:
|
||||
log(opts.logfile, "Error: Could not add: %s to yum config in mock chroot: %s" % (baseurl, msg))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# these files needed from the mock.config dir to make mock run
|
||||
for fn in ['site-defaults.cfg', 'logging.ini']:
|
||||
pth = mockconfig_path + '/' + fn
|
||||
shutil.copyfile(pth, opts.config_path + '/' + fn)
|
||||
|
||||
|
||||
# createrepo on it
|
||||
out, err = createrepo(opts.local_repo_dir)
|
||||
if err.strip():
|
||||
log(opts.logfile, "Error making local repo: %s" % opts.local_repo_dir)
|
||||
log(opts.logfile, "Err: %s" % err)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
download_dir = tempfile.mkdtemp()
|
||||
downloaded_pkgs = {}
|
||||
built_pkgs = []
|
||||
try_again = True
|
||||
to_be_built = pkgs
|
||||
while try_again:
|
||||
failed = []
|
||||
for pkg in to_be_built:
|
||||
if not pkg.endswith('.rpm'):
|
||||
log(opts.logfile, "%s doesn't appear to be an rpm - skipping" % pkg)
|
||||
failed.append(pkg)
|
||||
continue
|
||||
|
||||
elif pkg.startswith('http://') or pkg.startswith('https://'):
|
||||
url = pkg
|
||||
cwd = os.getcwd()
|
||||
os.chdir(download_dir)
|
||||
try:
|
||||
log(opts.logfile, 'Fetching %s' % url)
|
||||
ug = grabber.URLGrabber()
|
||||
fn = ug.urlgrab(url)
|
||||
pkg = download_dir + '/' + fn
|
||||
except Exception, e:
|
||||
log(opts.logfile, 'Error Downloading %s: %s' % (url, str(e)))
|
||||
failed.append(url)
|
||||
os.chdir(cwd)
|
||||
continue
|
||||
else:
|
||||
os.chdir(cwd)
|
||||
downloaded_pkgs[pkg] = url
|
||||
log(opts.logfile, "Start build: %s" % pkg)
|
||||
ret, cmd, out, err = do_build(opts, cfg, pkg)
|
||||
log(opts.logfile, "End build: %s" % pkg)
|
||||
if ret == 0:
|
||||
if opts.recurse:
|
||||
failed.append(pkg)
|
||||
log(opts.logfile, "Error building %s, will try again" % os.path.basename(pkg))
|
||||
else:
|
||||
log(opts.logfile,"Error building %s" % os.path.basename(pkg))
|
||||
log(opts.logfile,"See logs/results in %s" % opts.local_repo_dir)
|
||||
if not opts.cont:
|
||||
sys.exit(1)
|
||||
|
||||
elif ret == 1:
|
||||
log(opts.logfile, "Success building %s" % os.path.basename(pkg))
|
||||
built_pkgs.append(pkg)
|
||||
# createrepo with the new pkgs
|
||||
out, err = createrepo(opts.local_repo_dir)
|
||||
if err.strip():
|
||||
log(opts.logfile, "Error making local repo: %s" % opts.local_repo_dir)
|
||||
log(opts.logfile, "Err: %s" % err)
|
||||
elif ret == 2:
|
||||
log(opts.logfile, "Skipping already built pkg %s" % os.path.basename(pkg))
|
||||
|
||||
if failed:
|
||||
if len(failed) != len(to_be_built):
|
||||
to_be_built = failed
|
||||
try_again = True
|
||||
log(opts.logfile, 'Trying to rebuild %s failed pkgs' % len(failed))
|
||||
else:
|
||||
log(opts.logfile, "Tried twice - following pkgs could not be successfully built:")
|
||||
for pkg in failed:
|
||||
msg = pkg
|
||||
if pkg in downloaded_pkgs:
|
||||
msg = downloaded_pkgs[pkg]
|
||||
log(opts.logfile, msg)
|
||||
|
||||
try_again = False
|
||||
else:
|
||||
try_again = False
|
||||
|
||||
# cleaning up our download dir
|
||||
shutil.rmtree(download_dir, ignore_errors=True)
|
||||
|
||||
log(opts.logfile, "Results out to: %s" % opts.local_repo_dir)
|
||||
log(opts.logfile, "Pkgs built: %s" % len(built_pkgs))
|
||||
log(opts.logfile, "Packages successfully built in this order:")
|
||||
for pkg in built_pkgs:
|
||||
log(opts.logfile, pkg)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
||||
sys.exit(0)
|
||||
@@ -10,7 +10,7 @@
|
||||
register: instanceid
|
||||
|
||||
- name: terminate it
|
||||
local_action: command euca-terminate-instances ${instanceid.stdout}
|
||||
local_action: command euca-terminate-instances {{ instanceid.stdout }}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
# Setup fedmsg logging.
|
||||
# See the following for constraints on this format http://bit.ly/Xn1WDn
|
||||
config = dict(
|
||||
logging=dict(
|
||||
version=1,
|
||||
formatters=dict(
|
||||
bare={
|
||||
"format": "%(message)s",
|
||||
},
|
||||
),
|
||||
handlers=dict(
|
||||
console={
|
||||
"class": "logging.StreamHandler",
|
||||
"formatter": "bare",
|
||||
"level": "DEBUG",
|
||||
"stream": "ext://sys.stdout",
|
||||
}
|
||||
),
|
||||
loggers=dict(
|
||||
fedmsg={
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
"handlers": ["console"],
|
||||
},
|
||||
moksha={
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
"handlers": ["console"],
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
39
files/gnome/backup.sh
Normal file
39
files/gnome/backup.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
# backup.sh will run FROM backup03 TO the various GNOME boxes on the set. (there's two set
|
||||
# of machines, one being the ones with a public IP and the others being the IP-less ones that
|
||||
# will forward their agent through bastion.gnome.org)
|
||||
|
||||
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
|
||||
|
||||
MACHINES='signal.gnome.org
|
||||
webapps2.gnome.org
|
||||
clutter.gnome.org
|
||||
blogs.gnome.org
|
||||
chooser.gnome.org
|
||||
git.gnome.org
|
||||
webapps.gnome.org
|
||||
socket.gnome.org
|
||||
bugzilla-web.gnome.org
|
||||
progress.gnome.org
|
||||
clipboard.gnome.org
|
||||
cloud-ssh.gnome.org
|
||||
bastion.gnome.org
|
||||
spinner.gnome.org
|
||||
master.gnome.org
|
||||
combobox.gnome.org
|
||||
restaurant.gnome.org
|
||||
expander.gnome.org
|
||||
live.gnome.org
|
||||
extensions.gnome.org
|
||||
view.gnome.org
|
||||
puppet.gnome.org
|
||||
accelerator.gnome.org
|
||||
range.gnome.org'
|
||||
|
||||
BACKUP_DIR='/fedora_backups/gnome/'
|
||||
LOGS_DIR='/fedora_backups/gnome/logs'
|
||||
|
||||
for MACHINE in $MACHINES; do
|
||||
rsync -avz -e 'ssh -F /usr/local/etc/gnome_ssh_config' --bwlimit=2000 $MACHINE:/etc/rsyncd/backup.exclude $BACKUP_DIR/excludes/$MACHINE.exclude
|
||||
rdiff-backup --remote-schema 'ssh -F /usr/local/etc/gnome_ssh_config %s rdiff-backup --server' --print-statistics --exclude-device-files --exclude /selinux --exclude /sys --exclude /proc --exclude-globbing-filelist $BACKUP_DIR/excludes/$MACHINE.exclude $MACHINE::/ $BACKUP_DIR/$MACHINE/ | mail -s "Daily backup: $MACHINE" backups@gnome.org
|
||||
done
|
||||
8
files/gnome/ssh_config
Normal file
8
files/gnome/ssh_config
Normal file
@@ -0,0 +1,8 @@
|
||||
Host live.gnome.org extensions.gnome.org puppet.gnome.org view.gnome.org drawable.gnome.org
|
||||
User root
|
||||
IdentityFile /usr/local/etc/gnome_backup_id.rsa
|
||||
ProxyCommand ssh -W %h:%p bastion.gnome.org -F /usr/local/etc/gnome_ssh_config
|
||||
|
||||
Host *.gnome.org
|
||||
User root
|
||||
IdentityFile /usr/local/etc/gnome_backup_id.rsa
|
||||
@@ -4,6 +4,7 @@
|
||||
10.5.125.36 kojipkgs.fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.124.138 arm.koji.fedoraproject.org
|
||||
10.5.124.138 armpkgs.fedoraproject.org
|
||||
10.5.125.44 pkgs.fedoraproject.org pkgs
|
||||
#
|
||||
# This is proxy01.phx2.fedoraproject.org
|
||||
|
||||
7
files/hosts/ask01.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/ask01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 db-ask
|
||||
11
files/hosts/ask01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/ask01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-ask
|
||||
7
files/hosts/ask02.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/ask02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 db-ask
|
||||
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.52 admin.fedoraproject.org
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
@@ -2,7 +2,7 @@
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy5 proxy01 proxy02 proxy03 proxy04 proxy05 fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
|
||||
5
files/hosts/badges-web01.phx2.fedoraproject.org-hosts
Normal file
5
files/hosts/badges-web01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,5 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
@@ -2,7 +2,7 @@
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy5 proxy01 proxy02 proxy03 proxy04 proxy05 fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
|
||||
5
files/hosts/badges-web02.phx2.fedoraproject.org-hosts
Normal file
5
files/hosts/badges-web02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,5 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-tahrir db-tahrir
|
||||
9
files/hosts/fedoauth01.stg.phx2.fedoraproject.org-hosts
Normal file
9
files/hosts/fedoauth01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,9 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
11
files/hosts/fedocal01.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.71 db-fedocal db-fedocal
|
||||
11
files/hosts/fedocal01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-fedocal db-fedocal
|
||||
11
files/hosts/fedocal02.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/fedocal02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.71 db-fedocal db-fedocal
|
||||
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-notifs db-notifs
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
@@ -0,0 +1,12 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-notifs db-notifs
|
||||
10.5.126.85 db-datanommer db-datanommer
|
||||
6
files/hosts/notifs-web01.phx2.fedoraproject.org-hosts
Normal file
6
files/hosts/notifs-web01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-notifs db-notifs
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
12
files/hosts/notifs-web01.stg.phx2.fedoraproject.org-hosts
Normal file
12
files/hosts/notifs-web01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,12 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-notifs db-notifs
|
||||
10.5.126.85 db-datanommer db-datanommer
|
||||
6
files/hosts/notifs-web02.phx2.fedoraproject.org-hosts
Normal file
6
files/hosts/notifs-web02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.126.71 db-notifs db-notifs
|
||||
10.5.126.109 db-datanommer db-datanommer
|
||||
12
files/hosts/notifs-web02.stg.phx2.fedoraproject.org-hosts
Normal file
12
files/hosts/notifs-web02.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,12 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-notifs db-notifs
|
||||
10.5.126.85 db-datanommer db-datanommer
|
||||
7
files/hosts/nuancier01.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/nuancier01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 nuancier_db nuancier_db
|
||||
11
files/hosts/nuancier01.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/nuancier01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 nuancier_db nuancier_db
|
||||
7
files/hosts/nuancier02.phx2.fedoraproject.org-hosts
Normal file
7
files/hosts/nuancier02.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,7 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.71 nuancier_db nuancier_db
|
||||
11
files/hosts/nuancier02.stg.phx2.fedoraproject.org-hosts
Normal file
11
files/hosts/nuancier02.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,11 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 nuancier_db nuancier_db
|
||||
6
files/hosts/summershum01.phx2.fedoraproject.org-hosts
Normal file
6
files/hosts/summershum01.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,6 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
10.5.126.52 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.125.44 pkgs.fedoraproject.org
|
||||
10.5.126.71 db-summershum db-summershum
|
||||
12
files/hosts/summershum01.stg.phx2.fedoraproject.org-hosts
Normal file
12
files/hosts/summershum01.stg.phx2.fedoraproject.org-hosts
Normal file
@@ -0,0 +1,12 @@
|
||||
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
|
||||
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
|
||||
|
||||
10.5.126.89 admin.fedoraproject.org
|
||||
10.5.126.88 proxy01.phx2.fedoraproject.org proxy1 proxy2 proxy3 proxy4 proxy01 proxy02 proxy03 proxy04 fedoraproject.org
|
||||
10.5.126.86 fas01.phx2.fedoraproject.org fas1 fas2 fas01 fas02 fas03 fas-all
|
||||
10.5.126.23 infrastructure.fedoraproject.org
|
||||
10.5.125.44 pkgs.fedoraproject.org
|
||||
|
||||
10.5.126.81 memcached03 memcached03.stg app01 app01.stg
|
||||
|
||||
10.5.126.85 db-summershum db-summershum
|
||||
430
files/hotfix/python-openid/fetchers.py
Normal file
430
files/hotfix/python-openid/fetchers.py
Normal file
@@ -0,0 +1,430 @@
|
||||
# -*- test-case-name: openid.test.test_fetchers -*-
|
||||
"""
|
||||
This module contains the HTTP fetcher interface and several implementations.
|
||||
"""
|
||||
|
||||
__all__ = ['fetch', 'getDefaultFetcher', 'setDefaultFetcher', 'HTTPResponse',
|
||||
'HTTPFetcher', 'createHTTPFetcher', 'HTTPFetchingError',
|
||||
'HTTPError']
|
||||
|
||||
import urllib2
|
||||
import time
|
||||
import cStringIO
|
||||
import sys
|
||||
|
||||
import openid
|
||||
import openid.urinorm
|
||||
|
||||
# Try to import httplib2 for caching support
|
||||
# http://bitworking.org/projects/httplib2/
|
||||
try:
|
||||
import httplib2
|
||||
except ImportError:
|
||||
# httplib2 not available
|
||||
httplib2 = None
|
||||
|
||||
# try to import pycurl, which will let us use CurlHTTPFetcher
|
||||
try:
|
||||
import pycurl
|
||||
except ImportError:
|
||||
pycurl = None
|
||||
|
||||
USER_AGENT = "python-openid/%s (%s)" % (openid.__version__, sys.platform)
|
||||
MAX_RESPONSE_KB = 1024
|
||||
|
||||
def fetch(url, body=None, headers=None):
|
||||
"""Invoke the fetch method on the default fetcher. Most users
|
||||
should need only this method.
|
||||
|
||||
@raises Exception: any exceptions that may be raised by the default fetcher
|
||||
"""
|
||||
fetcher = getDefaultFetcher()
|
||||
return fetcher.fetch(url, body, headers)
|
||||
|
||||
def createHTTPFetcher():
|
||||
"""Create a default HTTP fetcher instance
|
||||
|
||||
prefers Curl to urllib2."""
|
||||
if pycurl is None:
|
||||
fetcher = Urllib2Fetcher()
|
||||
else:
|
||||
fetcher = CurlHTTPFetcher()
|
||||
|
||||
return fetcher
|
||||
|
||||
# Contains the currently set HTTP fetcher. If it is set to None, the
|
||||
# library will call createHTTPFetcher() to set it. Do not access this
|
||||
# variable outside of this module.
|
||||
_default_fetcher = None
|
||||
|
||||
def getDefaultFetcher():
|
||||
"""Return the default fetcher instance
|
||||
if no fetcher has been set, it will create a default fetcher.
|
||||
|
||||
@return: the default fetcher
|
||||
@rtype: HTTPFetcher
|
||||
"""
|
||||
global _default_fetcher
|
||||
|
||||
if _default_fetcher is None:
|
||||
setDefaultFetcher(createHTTPFetcher())
|
||||
|
||||
return _default_fetcher
|
||||
|
||||
def setDefaultFetcher(fetcher, wrap_exceptions=True):
|
||||
"""Set the default fetcher
|
||||
|
||||
@param fetcher: The fetcher to use as the default HTTP fetcher
|
||||
@type fetcher: HTTPFetcher
|
||||
|
||||
@param wrap_exceptions: Whether to wrap exceptions thrown by the
|
||||
fetcher wil HTTPFetchingError so that they may be caught
|
||||
easier. By default, exceptions will be wrapped. In general,
|
||||
unwrapped fetchers are useful for debugging of fetching errors
|
||||
or if your fetcher raises well-known exceptions that you would
|
||||
like to catch.
|
||||
@type wrap_exceptions: bool
|
||||
"""
|
||||
global _default_fetcher
|
||||
if fetcher is None or not wrap_exceptions:
|
||||
_default_fetcher = fetcher
|
||||
else:
|
||||
_default_fetcher = ExceptionWrappingFetcher(fetcher)
|
||||
|
||||
def usingCurl():
|
||||
"""Whether the currently set HTTP fetcher is a Curl HTTP fetcher."""
|
||||
fetcher = getDefaultFetcher()
|
||||
if isinstance(fetcher, ExceptionWrappingFetcher):
|
||||
fetcher = fetcher.fetcher
|
||||
return isinstance(fetcher, CurlHTTPFetcher)
|
||||
|
||||
class HTTPResponse(object):
|
||||
"""XXX document attributes"""
|
||||
headers = None
|
||||
status = None
|
||||
body = None
|
||||
final_url = None
|
||||
|
||||
def __init__(self, final_url=None, status=None, headers=None, body=None):
|
||||
self.final_url = final_url
|
||||
self.status = status
|
||||
self.headers = headers
|
||||
self.body = body
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s status %s for %s>" % (self.__class__.__name__,
|
||||
self.status,
|
||||
self.final_url)
|
||||
|
||||
class HTTPFetcher(object):
|
||||
"""
|
||||
This class is the interface for openid HTTP fetchers. This
|
||||
interface is only important if you need to write a new fetcher for
|
||||
some reason.
|
||||
"""
|
||||
|
||||
def fetch(self, url, body=None, headers=None):
|
||||
"""
|
||||
This performs an HTTP POST or GET, following redirects along
|
||||
the way. If a body is specified, then the request will be a
|
||||
POST. Otherwise, it will be a GET.
|
||||
|
||||
|
||||
@param headers: HTTP headers to include with the request
|
||||
@type headers: {str:str}
|
||||
|
||||
@return: An object representing the server's HTTP response. If
|
||||
there are network or protocol errors, an exception will be
|
||||
raised. HTTP error responses, like 404 or 500, do not
|
||||
cause exceptions.
|
||||
|
||||
@rtype: L{HTTPResponse}
|
||||
|
||||
@raise Exception: Different implementations will raise
|
||||
different errors based on the underlying HTTP library.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def _allowedURL(url):
|
||||
return url.startswith('http://') or url.startswith('https://')
|
||||
|
||||
class HTTPFetchingError(Exception):
|
||||
"""Exception that is wrapped around all exceptions that are raised
|
||||
by the underlying fetcher when using the ExceptionWrappingFetcher
|
||||
|
||||
@ivar why: The exception that caused this exception
|
||||
"""
|
||||
def __init__(self, why=None):
|
||||
Exception.__init__(self, why)
|
||||
self.why = why
|
||||
|
||||
class ExceptionWrappingFetcher(HTTPFetcher):
|
||||
"""Fetcher that wraps another fetcher, causing all exceptions
|
||||
|
||||
@cvar uncaught_exceptions: Exceptions that should be exposed to the
|
||||
user if they are raised by the fetch call
|
||||
"""
|
||||
|
||||
uncaught_exceptions = (SystemExit, KeyboardInterrupt, MemoryError)
|
||||
|
||||
def __init__(self, fetcher):
|
||||
self.fetcher = fetcher
|
||||
|
||||
def fetch(self, *args, **kwargs):
|
||||
try:
|
||||
return self.fetcher.fetch(*args, **kwargs)
|
||||
except self.uncaught_exceptions:
|
||||
raise
|
||||
except:
|
||||
exc_cls, exc_inst = sys.exc_info()[:2]
|
||||
if exc_inst is None:
|
||||
# string exceptions
|
||||
exc_inst = exc_cls
|
||||
|
||||
raise HTTPFetchingError(why=exc_inst)
|
||||
|
||||
class Urllib2Fetcher(HTTPFetcher):
|
||||
"""An C{L{HTTPFetcher}} that uses urllib2.
|
||||
"""
|
||||
|
||||
# Parameterized for the benefit of testing frameworks, see
|
||||
# http://trac.openidenabled.com/trac/ticket/85
|
||||
urlopen = staticmethod(urllib2.urlopen)
|
||||
|
||||
def fetch(self, url, body=None, headers=None):
|
||||
if not _allowedURL(url):
|
||||
raise ValueError('Bad URL scheme: %r' % (url,))
|
||||
|
||||
if headers is None:
|
||||
headers = {}
|
||||
|
||||
headers.setdefault(
|
||||
'User-Agent',
|
||||
"%s Python-urllib/%s" % (USER_AGENT, urllib2.__version__,))
|
||||
|
||||
req = urllib2.Request(url, data=body, headers=headers)
|
||||
try:
|
||||
f = self.urlopen(req)
|
||||
try:
|
||||
return self._makeResponse(f)
|
||||
finally:
|
||||
f.close()
|
||||
except urllib2.HTTPError, why:
|
||||
try:
|
||||
return self._makeResponse(why)
|
||||
finally:
|
||||
why.close()
|
||||
|
||||
def _makeResponse(self, urllib2_response):
|
||||
resp = HTTPResponse()
|
||||
resp.body = urllib2_response.read(MAX_RESPONSE_KB * 1024)
|
||||
resp.final_url = urllib2_response.geturl()
|
||||
resp.headers = dict(urllib2_response.info().items())
|
||||
|
||||
if hasattr(urllib2_response, 'code'):
|
||||
resp.status = urllib2_response.code
|
||||
else:
|
||||
resp.status = 200
|
||||
|
||||
return resp
|
||||
|
||||
class HTTPError(HTTPFetchingError):
|
||||
"""
|
||||
This exception is raised by the C{L{CurlHTTPFetcher}} when it
|
||||
encounters an exceptional situation fetching a URL.
|
||||
"""
|
||||
pass
|
||||
|
||||
# XXX: define what we mean by paranoid, and make sure it is.
|
||||
class CurlHTTPFetcher(HTTPFetcher):
|
||||
"""
|
||||
An C{L{HTTPFetcher}} that uses pycurl for fetching.
|
||||
See U{http://pycurl.sourceforge.net/}.
|
||||
"""
|
||||
ALLOWED_TIME = 20 # seconds
|
||||
|
||||
def __init__(self):
|
||||
HTTPFetcher.__init__(self)
|
||||
if pycurl is None:
|
||||
raise RuntimeError('Cannot find pycurl library')
|
||||
|
||||
def _parseHeaders(self, header_file):
|
||||
header_file.seek(0)
|
||||
|
||||
# Remove the status line from the beginning of the input
|
||||
unused_http_status_line = header_file.readline().lower ()
|
||||
while unused_http_status_line.lower().startswith('http/1.1 1'):
|
||||
unused_http_status_line = header_file.readline()
|
||||
unused_http_status_line = header_file.readline()
|
||||
|
||||
lines = [line.strip() for line in header_file]
|
||||
|
||||
# and the blank line from the end
|
||||
empty_line = lines.pop()
|
||||
if empty_line:
|
||||
raise HTTPError("No blank line at end of headers: %r" % (line,))
|
||||
|
||||
headers = {}
|
||||
for line in lines:
|
||||
try:
|
||||
name, value = line.split(':', 1)
|
||||
except ValueError:
|
||||
raise HTTPError(
|
||||
"Malformed HTTP header line in response: %r" % (line,))
|
||||
|
||||
value = value.strip()
|
||||
|
||||
# HTTP headers are case-insensitive
|
||||
name = name.lower()
|
||||
headers[name] = value
|
||||
|
||||
return headers
|
||||
|
||||
def _checkURL(self, url):
|
||||
# XXX: document that this can be overridden to match desired policy
|
||||
# XXX: make sure url is well-formed and routeable
|
||||
return _allowedURL(url)
|
||||
|
||||
def fetch(self, url, body=None, headers=None):
|
||||
stop = int(time.time()) + self.ALLOWED_TIME
|
||||
off = self.ALLOWED_TIME
|
||||
|
||||
if headers is None:
|
||||
headers = {}
|
||||
|
||||
headers.setdefault('User-Agent',
|
||||
"%s %s" % (USER_AGENT, pycurl.version,))
|
||||
|
||||
header_list = []
|
||||
if headers is not None:
|
||||
for header_name, header_value in headers.iteritems():
|
||||
header_list.append('%s: %s' % (header_name, header_value))
|
||||
|
||||
c = pycurl.Curl()
|
||||
try:
|
||||
c.setopt(pycurl.NOSIGNAL, 1)
|
||||
|
||||
if header_list:
|
||||
c.setopt(pycurl.HTTPHEADER, header_list)
|
||||
|
||||
# Presence of a body indicates that we should do a POST
|
||||
if body is not None:
|
||||
c.setopt(pycurl.POST, 1)
|
||||
c.setopt(pycurl.POSTFIELDS, body)
|
||||
|
||||
while off > 0:
|
||||
if not self._checkURL(url):
|
||||
raise HTTPError("Fetching URL not allowed: %r" % (url,))
|
||||
|
||||
data = cStringIO.StringIO()
|
||||
def write_data(chunk):
|
||||
if data.tell() > 1024*MAX_RESPONSE_KB:
|
||||
return 0
|
||||
else:
|
||||
return data.write(chunk)
|
||||
|
||||
response_header_data = cStringIO.StringIO()
|
||||
c.setopt(pycurl.WRITEFUNCTION, write_data)
|
||||
c.setopt(pycurl.HEADERFUNCTION, response_header_data.write)
|
||||
c.setopt(pycurl.TIMEOUT, off)
|
||||
c.setopt(pycurl.URL, openid.urinorm.urinorm(url))
|
||||
|
||||
c.perform()
|
||||
|
||||
response_headers = self._parseHeaders(response_header_data)
|
||||
code = c.getinfo(pycurl.RESPONSE_CODE)
|
||||
if code in [301, 302, 303, 307]:
|
||||
url = response_headers.get('location')
|
||||
if url is None:
|
||||
raise HTTPError(
|
||||
'Redirect (%s) returned without a location' % code)
|
||||
|
||||
# Redirects are always GETs
|
||||
c.setopt(pycurl.POST, 0)
|
||||
|
||||
# There is no way to reset POSTFIELDS to empty and
|
||||
# reuse the connection, but we only use it once.
|
||||
else:
|
||||
resp = HTTPResponse()
|
||||
resp.headers = response_headers
|
||||
resp.status = code
|
||||
resp.final_url = url
|
||||
resp.body = data.getvalue()
|
||||
return resp
|
||||
|
||||
off = stop - int(time.time())
|
||||
|
||||
raise HTTPError("Timed out fetching: %r" % (url,))
|
||||
finally:
|
||||
c.close()
|
||||
|
||||
class HTTPLib2Fetcher(HTTPFetcher):
|
||||
"""A fetcher that uses C{httplib2} for performing HTTP
|
||||
requests. This implementation supports HTTP caching.
|
||||
|
||||
@see: http://bitworking.org/projects/httplib2/
|
||||
"""
|
||||
|
||||
def __init__(self, cache=None):
|
||||
"""@param cache: An object suitable for use as an C{httplib2}
|
||||
cache. If a string is passed, it is assumed to be a
|
||||
directory name.
|
||||
"""
|
||||
if httplib2 is None:
|
||||
raise RuntimeError('Cannot find httplib2 library. '
|
||||
'See http://bitworking.org/projects/httplib2/')
|
||||
|
||||
super(HTTPLib2Fetcher, self).__init__()
|
||||
|
||||
# An instance of the httplib2 object that performs HTTP requests
|
||||
self.httplib2 = httplib2.Http(cache)
|
||||
|
||||
# We want httplib2 to raise exceptions for errors, just like
|
||||
# the other fetchers.
|
||||
self.httplib2.force_exception_to_status_code = False
|
||||
|
||||
def fetch(self, url, body=None, headers=None):
|
||||
"""Perform an HTTP request
|
||||
|
||||
@raises Exception: Any exception that can be raised by httplib2
|
||||
|
||||
@see: C{L{HTTPFetcher.fetch}}
|
||||
"""
|
||||
if body:
|
||||
method = 'POST'
|
||||
else:
|
||||
method = 'GET'
|
||||
|
||||
if headers is None:
|
||||
headers = {}
|
||||
|
||||
# httplib2 doesn't check to make sure that the URL's scheme is
|
||||
# 'http' so we do it here.
|
||||
if not (url.startswith('http://') or url.startswith('https://')):
|
||||
raise ValueError('URL is not a HTTP URL: %r' % (url,))
|
||||
|
||||
httplib2_response, content = self.httplib2.request(
|
||||
url, method, body=body, headers=headers)
|
||||
|
||||
# Translate the httplib2 response to our HTTP response abstraction
|
||||
|
||||
# When a 400 is returned, there is no "content-location"
|
||||
# header set. This seems like a bug to me. I can't think of a
|
||||
# case where we really care about the final URL when it is an
|
||||
# error response, but being careful about it can't hurt.
|
||||
try:
|
||||
final_url = httplib2_response['content-location']
|
||||
except KeyError:
|
||||
# We're assuming that no redirects occurred
|
||||
assert not httplib2_response.previous
|
||||
|
||||
# And this should never happen for a successful response
|
||||
assert httplib2_response.status != 200
|
||||
final_url = url
|
||||
|
||||
return HTTPResponse(
|
||||
body=content,
|
||||
final_url=final_url,
|
||||
headers=dict(httplib2_response.items()),
|
||||
status=httplib2_response.status,
|
||||
)
|
||||
@@ -25,9 +25,6 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3eVd6Ccegp1r1mhm7tPnlGUcw0zsAbR2p9hrFZ7RK
|
||||
#ricky
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDAeAohiRJ2v/RO7R9GS93TF92Gc9ixK6HM7wlbMdlZ4yYAbeoEX8VpeNaSTfo/Nw3zazr9VpmpHg+H70K8ljQsPgRwcgpetRVpF55M5FYjqM5oM+N94HV3nSGcnWbSIho1R31DaDH2ptxVqgh2m5DG7Bc45w9Bd4wjfdQ8nBrGv93tuH7X/cee4g6GvexLm5nXhAngdEmiyxw5MHuJAvj+54l4wMXRWpeF6XlI2iamW42nLSfRMCFkGNiXvBm8zkfkeH2L7I2cNKXXoP/cPCd3G/teIsI9FDqYpZ6CS0zMkWhlTuh7rlCjc9+nJsLdDLgwhb75skiUOOfimGvCCxWeHuCsSL+KpCu4AgI9UAVgO6xblDlmbQXxlGopep29U/s00W/0qv3Zp8Ks4Za0xHdoIwHiaLM0OYymFaNDd3ZqFG0FN23ZjcGqUmFGhGfUQRDt72+e9HtXlBJ0mUaCX9+e4wFGTVciG1/5CKsLHCaLRf+knsWXrv2zcv9BoZ9SCAK32zCZw05wjcmr7jYDCTLmtC6kEBNaOeE9Qqi2oomo4ji8ybg+Qq+1BwOtJKExvmZaooBZud0qd24HmCU0/0ysw732jGcqexzxsCR0VArd+7LKexOD7KwMW0VUss6fdOWac9gwCLx9FaKYh8mVvcQjKhKGI3aO2sXRUWSbBJw8w== ricky@alpha.rzhou.org
|
||||
|
||||
#skvidal
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjlnCEiFMrKpkiIBjs5IW1+RXDald3aKvTszj0hUw9Gl6w3vt3RAiqTD/XRKcNdP0+pVIK/I4KexKfZzemNZ8UYmZ+a9EK+Gj7OQbJv7TQDeR0zyJ8ZgFXaWoN+CnWXLO2mp9poysUR6CILjaDJt4GDxJaD+bebRu+zxUQSlgrjObhIUTSfwsEJu++zK+fy4+xSEMG7SANEJHd+zOAw6+isLnnbp8qY2fs3reKpc8XPkyJscLU4BQV2cGXwlPUhzPVv/itUUV/uWHeAqoz2i5XG4C0/BXk6D85qkGIyE08Nl3COxn6giivrdTIH6W4dUtBdYgTMZ3RgMHL9ClLpS17 skvidal@opus
|
||||
|
||||
#smooge
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAxnzCHH11nDM1m7yvqo6Uanq5vcZjBcs/mr3LccxwJ59ENzSXwUgEQy/P8vby9VKMwsskoaqZcvJdOSZBFhNV970NTPb69OIXPQAl/xhaLwiJOn606fB+/S8WepeuntS0qLiebbEiA9vIQLteZ+bWl1s/didD/sFo3/wItoTGA4GuShUu1AyWJx5Ue7Y34rwGR+kIvDoy2GHUcunn2PjGt4r3v2vpiR8GuK0JRupJAGYbYCiMBDRMkR0cgEyHW6+QQNqMlA6nRJjp94PcUMKaZK6Tc+6h5v8kLLtzuZ6ZupwMMC4X8sh85YcxqoW9DynrvO28pzaMNBHm7qr9LeY9PIhXscSa35GAcGZ7UwPK4aJAAuIzCf8BzazyvUM3Ye7GPCXHxUwY0kdXk+MHMVKFzZDChNp/ovgdhxNrw9Xzcs4yw7XYambN9Bk567cI6/tWcPuYLYD4ZJQP0qSXVzVgFEPss1lDcgd0k4if+pINyxM8eVFZVAqU+BMeDC+6W8HUUPgv6LiyTWs+xTXTuORwBTSF1pOqWB4LjqsCGIiMAc6n/xdALBGUN7qsuKDU6Q7bwPppaxypi4KCvuJsqW+8sDtMUaZ34I5Zo1q7cu03wqnOljUGoAY6IDn3J66F2KlPPyb/q3PDV3WbY/jnH16L29/xUA73nFUW1p+WXutwmSU= ssmoogen@ponyo.int.smoogespace.com
|
||||
|
||||
|
||||
@@ -46,6 +46,22 @@ class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
|
||||
<label></label>
|
||||
<nodeProperties/>
|
||||
</slave>
|
||||
<slave>
|
||||
<name>Fedora19</name>
|
||||
<description></description>
|
||||
<remoteFS>/mnt/jenkins/</remoteFS>
|
||||
<numExecutors>2</numExecutors>
|
||||
<mode>NORMAL</mode>
|
||||
<retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
|
||||
<launcher class="hudson.plugins.sshslaves.SSHLauncher"
|
||||
plugin="ssh-slaves@0.21">
|
||||
<host>172.16.5.12</host>
|
||||
<port>22</port>
|
||||
<credentialsId>d844d352-af1d-466b-9fc9-cbb19348103a</credentialsId>
|
||||
</launcher>
|
||||
<label></label>
|
||||
<nodeProperties/>
|
||||
</slave>
|
||||
<slave>
|
||||
<name>EL6</name>
|
||||
<description></description>
|
||||
@@ -62,6 +78,22 @@ class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
|
||||
<label></label>
|
||||
<nodeProperties/>
|
||||
</slave>
|
||||
<slave>
|
||||
<name>Fedora20</name>
|
||||
<description></description>
|
||||
<remoteFS>/mnt/jenkins/</remoteFS>
|
||||
<numExecutors>2</numExecutors>
|
||||
<mode>NORMAL</mode>
|
||||
<retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
|
||||
<launcher class="hudson.plugins.sshslaves.SSHLauncher"
|
||||
plugin="ssh-slaves@0.21">
|
||||
<host>172.16.5.23</host>
|
||||
<port>22</port>
|
||||
<credentialsId>950d5dd7-acb2-402a-8670-21f152d04928</credentialsId>
|
||||
</launcher>
|
||||
<label></label>
|
||||
<nodeProperties/>
|
||||
</slave>
|
||||
</slaves>
|
||||
<quietPeriod>5</quietPeriod>
|
||||
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<com.cloudbees.plugins.credentials.SystemCredentialsProvider plugin="credentials@1.4">
|
||||
<credentials>
|
||||
<com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey plugin="ssh-credentials@0.3">
|
||||
<scope>SYSTEM</scope>
|
||||
<id>d844d352-af1d-466b-9fc9-cbb19348103a</id>
|
||||
<description>172.16.5.12</description>
|
||||
<username>jenkins_slave</username>
|
||||
<passphrase>bEcypl4niEJMODrtoQ7iCw==</passphrase>
|
||||
<privateKeySource class="com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$FileOnMasterPrivateKeySource">
|
||||
<privateKeyFile>/var/tmp/jenkins_master_id_rsa</privateKeyFile>
|
||||
</privateKeySource>
|
||||
</com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey>
|
||||
<com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey plugin="ssh-credentials@0.3">
|
||||
<scope>SYSTEM</scope>
|
||||
<id>950d5dd7-acb2-402a-8670-21f152d04928</id>
|
||||
<description>172.16.5.10</description>
|
||||
<username>jenkins_slave</username>
|
||||
<passphrase>bEcypl4niEJMODrtoQ7iCw==</passphrase>
|
||||
<privateKeySource class="com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$FileOnMasterPrivateKeySource">
|
||||
<privateKeyFile>/var/tmp/jenkins_master_id_rsa</privateKeyFile>
|
||||
</privateKeySource>
|
||||
</com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey>
|
||||
</credentials>
|
||||
</com.cloudbees.plugins.credentials.SystemCredentialsProvider>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!-- plugin requested by user rholy (ticket #4175) -->
|
||||
<hudson.plugins.warnings.WarningsDescriptor plugin="warnings@4.39">
|
||||
<groovyParsers>
|
||||
<hudson.plugins.warnings.GroovyParser>
|
||||
<name>pyflakes</name>
|
||||
<regexp>^(.*):([0-9]*):(.*)$</regexp>
|
||||
<script>import hudson.plugins.warnings.parser.Warning
|
||||
import hudson.plugins.analysis.util.model.Priority
|
||||
|
||||
String fileName = matcher.group(1)
|
||||
String category = "PyFlakes Error"
|
||||
String lineNumber = matcher.group(2)
|
||||
String message = matcher.group(3)
|
||||
|
||||
return new Warning(fileName, Integer.parseInt(lineNumber), category, "PyFlakes Parser", message, Priority.NORMAL);</script>
|
||||
<example></example>
|
||||
<linkName>https://pypi.python.org/pypi/pyflakes</linkName>
|
||||
<trendName>pyflakes errors</trendName>
|
||||
</hudson.plugins.warnings.GroovyParser>
|
||||
</groovyParsers>
|
||||
</hudson.plugins.warnings.WarningsDescriptor>
|
||||
Binary file not shown.
Binary file not shown.
BIN
files/jenkins/master/plugins/cvs.hpi
Normal file
BIN
files/jenkins/master/plugins/cvs.hpi
Normal file
Binary file not shown.
BIN
files/jenkins/master/plugins/external-monitor-job.hpi
Normal file
BIN
files/jenkins/master/plugins/external-monitor-job.hpi
Normal file
Binary file not shown.
BIN
files/jenkins/master/plugins/git-client.hpi
Normal file
BIN
files/jenkins/master/plugins/git-client.hpi
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
files/jenkins/master/plugins/ldap.hpi
Normal file
BIN
files/jenkins/master/plugins/ldap.hpi
Normal file
Binary file not shown.
BIN
files/jenkins/master/plugins/maven-plugin.hpi
Normal file
BIN
files/jenkins/master/plugins/maven-plugin.hpi
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
files/jenkins/master/plugins/scm-api.hpi
Normal file
BIN
files/jenkins/master/plugins/scm-api.hpi
Normal file
Binary file not shown.
BIN
files/jenkins/master/plugins/ssh-agent.hpi
Normal file
BIN
files/jenkins/master/plugins/ssh-agent.hpi
Normal file
Binary file not shown.
BIN
files/jenkins/master/plugins/subversion.hpi
Normal file
BIN
files/jenkins/master/plugins/subversion.hpi
Normal file
Binary file not shown.
Binary file not shown.
132
files/keyserver/css.css
Normal file
132
files/keyserver/css.css
Normal file
@@ -0,0 +1,132 @@
|
||||
* { font-family: helvetica, sans-serif; }
|
||||
|
||||
h1,
|
||||
p {
|
||||
margin: 0; /* Let's zero those margins */
|
||||
}
|
||||
|
||||
h2 { color: #3c6eb4; margin: 0;}
|
||||
|
||||
#container {
|
||||
/* border: 1px solid #555; /* Nice transition from white background */
|
||||
width: 600px; /* Should be narrow enough for small screens */
|
||||
margin: 0 auto; /* Centering */
|
||||
font-size: 1.1em; /* Font big enough not to need to squint */
|
||||
line-height: 1.3em;
|
||||
|
||||
}
|
||||
|
||||
#title {
|
||||
/* background-color:#e2e5e2; */
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#title h1, #title h2 {
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
|
||||
#info {
|
||||
/* background-color:#e2e5e2; */
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
#main {
|
||||
/* background : #FAFBEA; */
|
||||
padding: 0 10px 10px 10px;
|
||||
}
|
||||
|
||||
#main header {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
#main p {
|
||||
margin: 0.5em 0;
|
||||
}
|
||||
|
||||
#keytext {
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
border: 1px solid #555;
|
||||
background : #fff;
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
ul {
|
||||
width: 100%;
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
li label {
|
||||
width: 57%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ddd));
|
||||
background: -moz-linear-gradient(top, #fff, #ddd);
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
|
||||
#info p {line-height: 1.1em; margin-bottom: 0.3em;}
|
||||
|
||||
|
||||
|
||||
#bodyform {
|
||||
margin-top: 20px;
|
||||
color: #555;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
|
||||
}
|
||||
|
||||
#headcontent {
|
||||
width: 700px;
|
||||
margin: auto;
|
||||
display: table;
|
||||
|
||||
}
|
||||
|
||||
#lefttop {
|
||||
float: left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#righttop {
|
||||
float:right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
hr {
|
||||
background: #3c6eb4;
|
||||
height: 8px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
footer {
|
||||
background: #3c6eb4;
|
||||
margin: auto;
|
||||
color: #fff;
|
||||
|
||||
}
|
||||
|
||||
footer p { width: 500px; margin: auto; text-align: center;}
|
||||
|
||||
a {text-decoration: none; color: #B8C9FF; font-weight: bold;}
|
||||
|
||||
fieldset {
|
||||
border: 2px solid #4462C4;
|
||||
}
|
||||
|
||||
legend {
|
||||
color: #3c6eb4;
|
||||
}
|
||||
|
||||
|
||||
91
files/keyserver/index.html
Normal file
91
files/keyserver/index.html
Normal file
@@ -0,0 +1,91 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" media="all" href="css.css" />
|
||||
<title>Fedora Project GPG Key Server</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id=bodyform>
|
||||
<div id=headcontent>
|
||||
<div id=lefttop>
|
||||
<a href="https://fedoraproject.org">
|
||||
<img src='https://fedoraproject.org/static/images/fedora-logo.png'>
|
||||
</a>
|
||||
</div>
|
||||
<div id=righttop>
|
||||
<h1>SKS OpenPGP Key server</h1>
|
||||
<h2>keys.fedoraproject.org</h2>
|
||||
</div>
|
||||
</div>
|
||||
<hr></hr>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="main" role="main">
|
||||
<header>
|
||||
<h2>Extract a key</h2>
|
||||
</header>
|
||||
<p>You can find a key by typing in some words that appear in the
|
||||
userid (name, email, etc.) of the key you're looking for, or
|
||||
by typing in the keyid in hex format ("0x…")</p>
|
||||
<form id="lookup" action="/pks/lookup" method="get">
|
||||
<fieldset checked="true"> <legend>Search for a public key</legend>
|
||||
<ul>
|
||||
<li> <label for="search">String</label> <input id="search"
|
||||
name="search" placeholder="0xDEADBEEF" required="" autofocus=""
|
||||
type="text"> </li>
|
||||
<li> <label for="fingerprint">Show PGP Fingerprints</label>
|
||||
<input id="fingerprint" name="fingerprint" type="checkbox">
|
||||
</li>
|
||||
<li> <label for="hash">Show SKS full-key hashes</label> <input
|
||||
id="hash" name="hash" type="checkbox"> </li>
|
||||
<li> <label for="matching">Get regular index of matching
|
||||
keys</label> <input id="matching" name="op" value="index"
|
||||
type="radio"> </li>
|
||||
<li> <label for="verbose">Get verbose index of matching
|
||||
keys</label> <input id="verbose" name="op" value="vindex"
|
||||
checked="checked" type="radio"> </li>
|
||||
<li> <label for="asciiarmored">Retrieve ascii-armored
|
||||
keys</label> <input id="asciiarmored" name="op" value="get"
|
||||
type="radio"> </li>
|
||||
<li> <label for="fullkey">Retrieve keys by full-key hash</label>
|
||||
<input id="fullkey" name="op" value="hget" type="radio">
|
||||
</li>
|
||||
</ul>
|
||||
<button type="reset">Reset</button> <button type="submit">Search
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for a key</button> </fieldset>
|
||||
</form>
|
||||
<header>
|
||||
<h2>Submit a key</h2>
|
||||
</header>
|
||||
<p>You can submit a key by simply pasting in the ASCII-armored
|
||||
version of your key and clicking on submit.</p>
|
||||
<form id="add" action="/pks/add" method="post">
|
||||
<fieldset> <textarea id="keytext" name="keytext" rows="5" cols="30"></textarea>
|
||||
<button type="reset">Reset</button> <button checked="true"
|
||||
type="submit">Submit this key</button></fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<!-- end of #main -->
|
||||
</div>
|
||||
<!--! end of #container -->
|
||||
<footer id="info">
|
||||
<p><a href="https://bitbucket.org/skskeyserver/sks-keyserver/wiki/Home">SKS</a> is
|
||||
a new <a href="http://www.openpgp.org/">OpenPGP</a>
|
||||
keyserver. The main innovation of SKS is that it includes a
|
||||
highly-efficient reconciliation algorithm for keeping the
|
||||
keyservers synchronized.</p>
|
||||
<p style="text-align: center;"><a href="/pks/lookup?op=stats">SKS statistics</a></p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
42
files/keyserver/membership
Normal file
42
files/keyserver/membership
Normal file
@@ -0,0 +1,42 @@
|
||||
a.sks.srv.scientia.net 11370 # root@sks.srv.scientia.net
|
||||
key.adeti.org 11370 # Marco RODRIGUES <marco@adeti.org> 0x7CE697FC
|
||||
key.ip6.li 11370 # Christian Felsing <hostmaster@ip6.li> 0x5386E2A0
|
||||
keys2.kfwebs.net 11370 # 0x0B7F8B60E3EDFAE3
|
||||
#keys.christensenplace.us 11370 # Eric Christensen <eric@christensenplace.us> 0x024BB3D1
|
||||
keyserver.cns.vt.edu 11370 # Phil Benchoff <benchoff@vt.edu> <keymaster@cns.vt.edu>
|
||||
#keyserver.computer42.org 11370 # H.-Dirk Schmitt <dirk@computer42.org> 0x6A017B17
|
||||
keyserver.dacr.hu 11370 # David Horvath <dacr@dacr.hu> 0x00CBC81A
|
||||
keyserver.gingerbear.net 11370 # John P. Clizbe <John@Gingerbear.net> 0xD6569825
|
||||
keyserver.kim-minh.com 11370 # Kim Minh Kaplan<kaplan+sks@kim-minh.com> 0xAF1E829C
|
||||
keyserver.kjsl.org 11370 # Javier Henderson <javier@kjsl.org> 0x9BF88EE5
|
||||
keyserver.nausch.org 11370 # Michael Nausch <michael@nausch.org> 0x2384C849
|
||||
key-server.nl 11370 # Wijnand Modderman-Lenstra <maze@key-server.nl> 0x294DF221
|
||||
keyserver.saol.no-ip.com 11370 # Peter <peter@saol.no-ip.com> 0x39E97290
|
||||
keyserver.secretresearchfacility.com 11370 # Stephan Seitz <s.seitz@secretresearchfacility.com> 0xAB83B1C3
|
||||
keyserver.serviz.fr 11370 # robert <sks(at)serviz(pt)fr> 0xEF333C7E
|
||||
keyserver.sincer.us 11370 # Petru Ghita <petrutz@venaver.info> 0x7CF29D04
|
||||
keyserver.skoopsmedia.net 11370 # unknown
|
||||
#keyservers.org 11370 # Rob Hansen <rjh@sixdemonbag.org>
|
||||
keyserver.stack.nl 11370 # Johan van Selst <johans@stack.nl> 0xD3AE8D3A
|
||||
keyserver.ut.mephi.ru 11370 # Dmitry Yu Okunev <dyokunev@ut.mephi.ru> 0x8E30679C, pks team <pks@ut.mephi.ru>
|
||||
keys.exosphere.de 11370 # Christoph Gebhardt <chris@exosphere.de> 0xE1C2E92C
|
||||
keys.jhcloos.com 11370 # James Cloos <cloos@jhcloos.com> 0xED7DAEA6
|
||||
keys.niif.hu 11370 # Gabor Kiss <kissg@ssg.ki.iif.hu>
|
||||
keys.thoma.cc 11370 # Maximilian Thoma <keys@thoma.cc> 0xB480AC4B
|
||||
keys.wuschelpuschel.org 11370 # 0x017D1C3D Peter Kornherr <peter@wuschelpuschel.org>
|
||||
openpgp1.claruscomms.net 11370 # unknown
|
||||
pgp.circl.lu 11370 # CIRCL - info@circl.lu - 0x22BD4CD5
|
||||
#pgp.codelabs.ru 11370 # Eygene Ryabinkin <rea@codelabs.ru> 0x8152ECFB
|
||||
pgp.jjim.de 11370 # Joel Garske <admin@pgp.jjim.de> 0xA921EB20
|
||||
pgpkeys.mallos.nl 11370 # Arnold Schekkerman <arnold@mallos.nl> 0xB66BBBAA
|
||||
pgp.megagod.net 11370 # Kullawat Chaowanawatee (0xC19EAE3A)
|
||||
pgp.rediris.es 11370 # Francisco.monserrat <francisco.monserrat@rediris.es> 0xD3A42C61
|
||||
#pki.colliertech.org 11370 # C.J. Adams-Collier <cjac@uw.edu> 0x8E562765BA27A83C
|
||||
ranger.ky9k.org 11370 # Brian D Heaton <pgp-keymaster@ky9k.org> 0x9A016118
|
||||
sks.ecks.ca 11370 # Eric Benoit <eric@ecks.ca> 0x69E65D2C
|
||||
sks.es.net 11370 # keymaster@es.net
|
||||
sks.karotte.org 11370 # Sebastian Wiesinger <sebastian@karotte.org> 0x93A0B9CE
|
||||
sks.keyservers.net 11370 # John P. Clizbe <John@Gingerbear.net> 0xD6569825
|
||||
sks-peer.spodhuis.org 11370 # Phil Pennock <keyserver@spodhuis.org> 0x3903637F
|
||||
sks.pkqs.net 11370 # Stephan Beyer <s-beyer@gmx.net> 0xFCC5040F
|
||||
zimmermann.mayfirst.org 11370 # Daniel Kahn Gillmor <dkg@fifthhorseman.net> 0xCCD2ED94D21739E9
|
||||
83
files/keyserver/sks.conf
Normal file
83
files/keyserver/sks.conf
Normal file
@@ -0,0 +1,83 @@
|
||||
ServerName keys.fedoraproject.org
|
||||
Listen 80.239.156.219:11371
|
||||
NameVirtualHost *:443
|
||||
|
||||
<ifModule !mod_proxy.c>
|
||||
LoadModule proxy_module modules/mod_proxy.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_proxy_http.c>
|
||||
LoadModule proxy_http_module modules/mod_proxy_http.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_proxy_balancer.c>
|
||||
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_headers.c>
|
||||
LoadModule headers_module modules/mod_headers.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_authz_host.c>
|
||||
LoadModule authz_host_module modules/mod_authz_host.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_log_config.c>
|
||||
LoadModule log_config_module modules/mod_log_config.so
|
||||
</IfModule>
|
||||
|
||||
<IfModule !mod_env.c>
|
||||
LoadModule env_module modules/mod_env.so
|
||||
</IfModule>
|
||||
|
||||
<Directory />
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
</Directory>
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin sysadmin-keys-members@fedoraproject.org
|
||||
ServerName keys.fedoraproject.org
|
||||
ProxyPass / http://127.0.0.1:11371/
|
||||
ProxyPassReverse / http://127.0.0.1:11371/
|
||||
SetEnv proxy-nokeepalive 1
|
||||
ProxyVia Full
|
||||
</VirtualHost>
|
||||
<VirtualHost *:443>
|
||||
ServerAdmin sysadmin-keys-members@fedoraproject.org
|
||||
ServerName keys.fedoraproject.org
|
||||
ServerAlias keys01.fedoraproject.org
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/pki/tls/wildcard-2013.fedoraproject.org.cert
|
||||
SSLCertificateChainFile /etc/pki/tls/wildcard-2013.fedoraproject.org.intermediate.cert
|
||||
SSLCertificateKeyFile /etc/pki/tls/wildcard-2013.fedoraproject.org.key
|
||||
ProxyPass / http://localhost:11371/
|
||||
ProxyPassReverse / http://localhost:11371/
|
||||
SetEnv proxy-nokeepalive 1
|
||||
ProxyVia Full
|
||||
</VirtualHost>
|
||||
<VirtualHost *:443>
|
||||
ServerAdmin sysadmin-keys-members@fedoraproject.org
|
||||
ServerName pool.sks-keyservers.net
|
||||
ServerAlias sks-keyservers.net
|
||||
ServerAlias *.sks-keyservers.net
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/pki/tls/keys_fedoraproject_org.crt.pem
|
||||
SSLCertificateKeyFile /etc/pki/tls/keys_fedoraproject_org.key
|
||||
ProxyPass / http://localhost:11371/
|
||||
ProxyPassReverse / http://localhost:11371/
|
||||
SetEnv proxy-nokeepalive 1
|
||||
ProxyVia Full
|
||||
</VirtualHost>
|
||||
<VirtualHost *:11371>
|
||||
ServerAdmin sysadmin-keys-members@fedoraproject.org
|
||||
ServerName keys.fedoraproject.org
|
||||
ProxyPass / http://127.0.0.1:11371/
|
||||
ProxyPassReverse / http://127.0.0.1:11371/
|
||||
SetEnv proxy-nokeepalive 1
|
||||
ProxyVia Full
|
||||
</VirtualHost>
|
||||
13
files/keyserver/sksconf
Normal file
13
files/keyserver/sksconf
Normal file
@@ -0,0 +1,13 @@
|
||||
basedir: /srv/sks
|
||||
#debuglevel: 10
|
||||
#debug:
|
||||
hostname: keys.fedoraproject.org
|
||||
hkp_address: 127.0.0.1
|
||||
hkp_port: 11371
|
||||
recon_port: 11370
|
||||
#gossip_interval: 1440
|
||||
stat_hour: 00
|
||||
initial_stat:
|
||||
membership_reload_interval: 1
|
||||
disable_mailsync:
|
||||
server_contact: 0x167B4A54236BBEAA37DCCD92ED14D5E7110810E9
|
||||
224
files/keyserver/ssl.conf
Normal file
224
files/keyserver/ssl.conf
Normal file
@@ -0,0 +1,224 @@
|
||||
#
|
||||
# This is the Apache server configuration file providing SSL support.
|
||||
# It contains the configuration directives to instruct the server how to
|
||||
# serve pages over an https connection. For detailing information about these
|
||||
# directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
|
||||
#
|
||||
# Do NOT simply read the instructions in here without understanding
|
||||
# what they do. They're here only as hints or reminders. If you are unsure
|
||||
# consult the online docs. You have been warned.
|
||||
#
|
||||
|
||||
LoadModule ssl_module modules/mod_ssl.so
|
||||
|
||||
#
|
||||
# When we also provide SSL we have to listen to the
|
||||
# the HTTPS port in addition.
|
||||
#
|
||||
Listen 443
|
||||
|
||||
##
|
||||
## SSL Global Context
|
||||
##
|
||||
## All SSL configuration in this context applies both to
|
||||
## the main server and all SSL-enabled virtual hosts.
|
||||
##
|
||||
|
||||
# Pass Phrase Dialog:
|
||||
# Configure the pass phrase gathering process.
|
||||
# The filtering dialog program (`builtin' is a internal
|
||||
# terminal dialog) has to provide the pass phrase on stdout.
|
||||
SSLPassPhraseDialog builtin
|
||||
|
||||
# Inter-Process Session Cache:
|
||||
# Configure the SSL Session Cache: First the mechanism
|
||||
# to use and second the expiring timeout (in seconds).
|
||||
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
|
||||
SSLSessionCacheTimeout 300
|
||||
|
||||
# Semaphore:
|
||||
# Configure the path to the mutual exclusion semaphore the
|
||||
# SSL engine uses internally for inter-process synchronization.
|
||||
SSLMutex default
|
||||
|
||||
# Pseudo Random Number Generator (PRNG):
|
||||
# Configure one or more sources to seed the PRNG of the
|
||||
# SSL library. The seed data should be of good random quality.
|
||||
# WARNING! On some platforms /dev/random blocks if not enough entropy
|
||||
# is available. This means you then cannot use the /dev/random device
|
||||
# because it would lead to very long connection times (as long as
|
||||
# it requires to make more entropy available). But usually those
|
||||
# platforms additionally provide a /dev/urandom device which doesn't
|
||||
# block. So, if available, use this one instead. Read the mod_ssl User
|
||||
# Manual for more details.
|
||||
SSLRandomSeed startup file:/dev/urandom 256
|
||||
SSLRandomSeed connect builtin
|
||||
#SSLRandomSeed startup file:/dev/random 512
|
||||
#SSLRandomSeed connect file:/dev/random 512
|
||||
#SSLRandomSeed connect file:/dev/urandom 512
|
||||
|
||||
#
|
||||
# Use "SSLCryptoDevice" to enable any supported hardware
|
||||
# accelerators. Use "openssl engine -v" to list supported
|
||||
# engine names. NOTE: If you enable an accelerator and the
|
||||
# server does not start, consult the error logs and ensure
|
||||
# your accelerator is functioning properly.
|
||||
#
|
||||
SSLCryptoDevice builtin
|
||||
#SSLCryptoDevice ubsec
|
||||
|
||||
##
|
||||
## SSL Virtual Host Context
|
||||
##
|
||||
|
||||
<VirtualHost _default_:443>
|
||||
|
||||
# General setup for the virtual host, inherited from global configuration
|
||||
#DocumentRoot "/var/www/html"
|
||||
# ProxyPass / http://localhost:11371/
|
||||
# ProxyPassReverse / http://localhost:11371/
|
||||
#ServerName www.example.com:443
|
||||
|
||||
# Use separate log files for the SSL virtual host; note that LogLevel
|
||||
# is not inherited from httpd.conf.
|
||||
ErrorLog logs/ssl_error_log
|
||||
TransferLog logs/ssl_access_log
|
||||
LogLevel warn
|
||||
|
||||
# SSL Engine Switch:
|
||||
# Enable/Disable SSL for this virtual host.
|
||||
SSLEngine on
|
||||
|
||||
# SSL Protocol support:
|
||||
# List the enable protocol levels with which clients will be able to
|
||||
# connect. Disable SSLv2 access by default:
|
||||
SSLProtocol all -SSLv2
|
||||
|
||||
# SSL Cipher Suite:
|
||||
# List the ciphers that the client is permitted to negotiate.
|
||||
# See the mod_ssl documentation for a complete list.
|
||||
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
|
||||
|
||||
# Server Certificate:
|
||||
# Point SSLCertificateFile at a PEM encoded certificate. If
|
||||
# the certificate is encrypted, then you will be prompted for a
|
||||
# pass phrase. Note that a kill -HUP will prompt again. A new
|
||||
# certificate can be generated using the genkey(1) command.
|
||||
SSLCertificateFile /etc/pki/tls/keys_fedoraproject_org.crt.pem
|
||||
|
||||
# Server Private Key:
|
||||
# If the key is not combined with the certificate, use this
|
||||
# directive to point at the key file. Keep in mind that if
|
||||
# you've both a RSA and a DSA private key you can configure
|
||||
# both in parallel (to also allow the use of DSA ciphers, etc.)
|
||||
SSLCertificateKeyFile /etc/pki/tls/keys_fedoraproject_org.key
|
||||
|
||||
# Server Certificate Chain:
|
||||
# Point SSLCertificateChainFile at a file containing the
|
||||
# concatenation of PEM encoded CA certificates which form the
|
||||
# certificate chain for the server certificate. Alternatively
|
||||
# the referenced file can be the same as SSLCertificateFile
|
||||
# when the CA certificates are directly appended to the server
|
||||
# certificate for convinience.
|
||||
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
|
||||
|
||||
# Certificate Authority (CA):
|
||||
# Set the CA certificate verification path where to find CA
|
||||
# certificates for client authentication or alternatively one
|
||||
# huge file containing all of them (file must be PEM encoded)
|
||||
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
|
||||
|
||||
# Client Authentication (Type):
|
||||
# Client certificate verification type and depth. Types are
|
||||
# none, optional, require and optional_no_ca. Depth is a
|
||||
# number which specifies how deeply to verify the certificate
|
||||
# issuer chain before deciding the certificate is not valid.
|
||||
#SSLVerifyClient require
|
||||
#SSLVerifyDepth 10
|
||||
|
||||
# Access Control:
|
||||
# With SSLRequire you can do per-directory access control based
|
||||
# on arbitrary complex boolean expressions containing server
|
||||
# variable checks and other lookup directives. The syntax is a
|
||||
# mixture between C and Perl. See the mod_ssl documentation
|
||||
# for more details.
|
||||
#<Location />
|
||||
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
|
||||
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
|
||||
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
|
||||
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
|
||||
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
|
||||
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
|
||||
#</Location>
|
||||
|
||||
# SSL Engine Options:
|
||||
# Set various options for the SSL engine.
|
||||
# o FakeBasicAuth:
|
||||
# Translate the client X.509 into a Basic Authorisation. This means that
|
||||
# the standard Auth/DBMAuth methods can be used for access control. The
|
||||
# user name is the `one line' version of the client's X.509 certificate.
|
||||
# Note that no password is obtained from the user. Every entry in the user
|
||||
# file needs this password: `xxj31ZMTZzkVA'.
|
||||
# o ExportCertData:
|
||||
# This exports two additional environment variables: SSL_CLIENT_CERT and
|
||||
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
|
||||
# server (always existing) and the client (only existing when client
|
||||
# authentication is used). This can be used to import the certificates
|
||||
# into CGI scripts.
|
||||
# o StdEnvVars:
|
||||
# This exports the standard SSL/TLS related `SSL_*' environment variables.
|
||||
# Per default this exportation is switched off for performance reasons,
|
||||
# because the extraction step is an expensive operation and is usually
|
||||
# useless for serving static content. So one usually enables the
|
||||
# exportation for CGI and SSI requests only.
|
||||
# o StrictRequire:
|
||||
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even
|
||||
# under a "Satisfy any" situation, i.e. when it applies access is denied
|
||||
# and no other module can change it.
|
||||
# o OptRenegotiate:
|
||||
# This enables optimized SSL connection renegotiation handling when SSL
|
||||
# directives are used in per-directory context.
|
||||
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
|
||||
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</Files>
|
||||
<Directory "/var/www/cgi-bin">
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
|
||||
# SSL Protocol Adjustments:
|
||||
# The safe and default but still SSL/TLS standard compliant shutdown
|
||||
# approach is that mod_ssl sends the close notify alert but doesn't wait for
|
||||
# the close notify alert from client. When you need a different shutdown
|
||||
# approach you can use one of the following variables:
|
||||
# o ssl-unclean-shutdown:
|
||||
# This forces an unclean shutdown when the connection is closed, i.e. no
|
||||
# SSL close notify alert is send or allowed to received. This violates
|
||||
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
|
||||
# this when you receive I/O errors because of the standard approach where
|
||||
# mod_ssl sends the close notify alert.
|
||||
# o ssl-accurate-shutdown:
|
||||
# This forces an accurate shutdown when the connection is closed, i.e. a
|
||||
# SSL close notify alert is send and mod_ssl waits for the close notify
|
||||
# alert of the client. This is 100% SSL/TLS standard compliant, but in
|
||||
# practice often causes hanging connections with brain-dead browsers. Use
|
||||
# this only for browsers where you know that their SSL implementation
|
||||
# works correctly.
|
||||
# Notice: Most problems of broken clients are also related to the HTTP
|
||||
# keep-alive facility, so you usually additionally want to disable
|
||||
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
|
||||
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
|
||||
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
|
||||
# "force-response-1.0" for this.
|
||||
SetEnvIf User-Agent ".*MSIE.*" \
|
||||
nokeepalive ssl-unclean-shutdown \
|
||||
downgrade-1.0 force-response-1.0
|
||||
|
||||
# Per-Server Logging:
|
||||
# The home of a custom SSL log file. Use this when you want a
|
||||
# compact non-error SSL logfile on a virtual host basis.
|
||||
CustomLog logs/ssl_request_log \
|
||||
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
10.5.88.0/24 dev eth1
|
||||
@@ -1,96 +0,0 @@
|
||||
#
|
||||
# Aliases in this file will NOT be expanded in the header from
|
||||
# Mail, but WILL be visible over networks or from /bin/mail.
|
||||
#
|
||||
# >>>>>>>>>> The program "newaliases" must be run after
|
||||
# >> NOTE >> this file is updated for any changes to
|
||||
# >>>>>>>>>> show through to sendmail.
|
||||
#
|
||||
|
||||
# Basic system aliases -- these MUST be present.
|
||||
mailer-daemon: postmaster
|
||||
postmaster: root
|
||||
|
||||
# General redirections for pseudo accounts.
|
||||
bin: root
|
||||
daemon: root
|
||||
adm: root
|
||||
lp: root
|
||||
sync: root
|
||||
shutdown: root
|
||||
halt: root
|
||||
mail: root
|
||||
news: root
|
||||
uucp: root
|
||||
operator: root
|
||||
games: root
|
||||
gopher: root
|
||||
ftp: root
|
||||
nobody: root
|
||||
radiusd: root
|
||||
nut: root
|
||||
dbus: root
|
||||
vcsa: root
|
||||
canna: root
|
||||
wnn: root
|
||||
rpm: root
|
||||
nscd: root
|
||||
pcap: root
|
||||
apache: root
|
||||
webalizer: root
|
||||
dovecot: root
|
||||
fax: root
|
||||
quagga: root
|
||||
radvd: root
|
||||
pvm: root
|
||||
amandabackup: root
|
||||
privoxy: root
|
||||
ident: root
|
||||
named: root
|
||||
xfs: root
|
||||
gdm: root
|
||||
mailnull: root
|
||||
postgres: root
|
||||
sshd: root
|
||||
smmsp: root
|
||||
postfix: root
|
||||
netdump: root
|
||||
ldap: root
|
||||
squid: root
|
||||
ntp: root
|
||||
mysql: root
|
||||
desktop: root
|
||||
rpcuser: root
|
||||
rpc: root
|
||||
nfsnobody: root
|
||||
|
||||
ingres: root
|
||||
system: root
|
||||
toor: root
|
||||
manager: root
|
||||
dumper: root
|
||||
abuse: root
|
||||
|
||||
newsadm: news
|
||||
newsadmin: news
|
||||
usenet: news
|
||||
ftpadm: ftp
|
||||
ftpadmin: ftp
|
||||
ftp-adm: ftp
|
||||
ftp-admin: ftp
|
||||
www: webmaster
|
||||
webmaster: root
|
||||
noc: root
|
||||
security: root
|
||||
hostmaster: root
|
||||
info: postmaster
|
||||
marketing: postmaster
|
||||
sales: postmaster
|
||||
support: postmaster
|
||||
|
||||
|
||||
# trap decode to catch security attacks
|
||||
decode: root
|
||||
|
||||
# Person who should get root's mail
|
||||
root: abompard@fedoraproject.org
|
||||
@@ -1,27 +0,0 @@
|
||||
#Alias /robots.txt /etc/hyperkitty/sites/default/static/robots.txt
|
||||
#Alias /favicon.ico /etc/hyperkitty/sites/default/static/favicon.ico
|
||||
Alias /hyperkitty/static /var/lib/hyperkitty/sites/default/static
|
||||
|
||||
#ErrorLog /var/log/httpd/hyperkitty_error.log
|
||||
#CustomLog /var/log/httpd/hyperkitty_access.log combined
|
||||
|
||||
WSGIScriptAlias /hyperkitty /etc/hyperkitty/sites/default/wsgi.py
|
||||
WSGIDaemonProcess hyperkitty threads=25 python-path=/etc/hyperkitty/sites/default
|
||||
# If using VirtualEnv
|
||||
#WSGIDaemonProcess hyperkitty threads=25 python-path=/etc/hyperkitty/sites/default:/path/to/your/venv/lib/python2.X/site-packages
|
||||
WSGISocketPrefix run/wsgi
|
||||
|
||||
<Directory "/etc/hyperkitty/sites/default">
|
||||
<Files wsgi.py>
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Files>
|
||||
WSGIProcessGroup hyperkitty
|
||||
</Directory>
|
||||
|
||||
<Directory "/var/lib/hyperkitty/sites/default/static">
|
||||
Order deny,allow
|
||||
Allow from all
|
||||
Require all granted
|
||||
</Directory>
|
||||
@@ -1,3 +0,0 @@
|
||||
[general]
|
||||
base_url: http://lists-dev.cloud.fedoraproject.org/
|
||||
django_settings: /etc/hyperkitty/sites/default/settings.py
|
||||
@@ -1,10 +0,0 @@
|
||||
/var/log/hyperkitty/*.log {
|
||||
missingok
|
||||
notifempty
|
||||
sharedscripts
|
||||
delaycompress
|
||||
su root apache
|
||||
postrotate
|
||||
/sbin/service httpd reload > /dev/null 2>/dev/null || true
|
||||
endscript
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Django local settings for the hyperkitty project.
|
||||
"""
|
||||
|
||||
DEBUG = True
|
||||
TEMPLATE_DEBUG = DEBUG
|
||||
|
||||
ADMINS = ()
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'NAME': 'hyperkitty',
|
||||
'USER': 'hyperkitty',
|
||||
'PASSWORD': '{{ lists_dev_hk_db_pass }}',
|
||||
'HOST': 'localhost',
|
||||
'PORT': '',
|
||||
}
|
||||
}
|
||||
# URL prefix for static files.
|
||||
# Example: "http://media.lawrence.com/static/"
|
||||
STATIC_URL = '/hyperkitty/static/'
|
||||
|
||||
# Add Fedora to the authentication backends
|
||||
AUTHENTICATION_BACKENDS = (
|
||||
'social_auth.backends.browserid.BrowserIDBackend',
|
||||
'hyperkitty.lib.fedora.FedoraBackend',
|
||||
'social_auth.backends.google.GoogleBackend',
|
||||
'social_auth.backends.yahoo.YahooBackend',
|
||||
#'social_auth.backends.OpenIDBackend',
|
||||
'django.contrib.auth.backends.ModelBackend',
|
||||
)
|
||||
|
||||
# Use the email address as the username (add associate_by_email).
|
||||
SOCIAL_AUTH_PIPELINE = (
|
||||
'social_auth.backends.pipeline.social.social_auth_user',
|
||||
'social_auth.backends.pipeline.associate.associate_by_email',
|
||||
'social_auth.backends.pipeline.user.get_username',
|
||||
'social_auth.backends.pipeline.user.create_user',
|
||||
'social_auth.backends.pipeline.social.associate_user',
|
||||
'social_auth.backends.pipeline.social.load_extra_data',
|
||||
'social_auth.backends.pipeline.user.update_user_details'
|
||||
)
|
||||
|
||||
# A sample logging configuration. The only tangible logging
|
||||
# performed by this configuration is to send an email to
|
||||
# the site admins on every HTTP 500 error.
|
||||
# See http://docs.djangoproject.com/en/dev/topics/logging for
|
||||
# more details on how to customize your logging configuration.
|
||||
LOGGING = {
|
||||
'version': 1,
|
||||
'disable_existing_loggers': False,
|
||||
'handlers': {
|
||||
'mail_admins': {
|
||||
'level': 'ERROR',
|
||||
'class': 'django.utils.log.AdminEmailHandler'
|
||||
},
|
||||
'file':{
|
||||
'level': 'DEBUG',
|
||||
#'class': 'logging.handlers.RotatingFileHandler',
|
||||
'class': 'logging.FileHandler',
|
||||
'filename': '/var/log/hyperkitty/hyperkitty.log',
|
||||
'formatter': 'verbose',
|
||||
},
|
||||
},
|
||||
'loggers': {
|
||||
'django.request': {
|
||||
'handlers': ['file'],
|
||||
'level': 'ERROR',
|
||||
'propagate': True,
|
||||
},
|
||||
'django': {
|
||||
'handlers': ['file'],
|
||||
'level': 'ERROR',
|
||||
'propagate': True,
|
||||
},
|
||||
'hyperkitty': {
|
||||
'handlers': ['file'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': True,
|
||||
},
|
||||
},
|
||||
'formatters': {
|
||||
'verbose': {
|
||||
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
|
||||
},
|
||||
'simple': {
|
||||
'format': '%(levelname)s %(message)s'
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
APP_NAME = 'Fedora list archives'
|
||||
KITTYSTORE_URL = 'postgres://kittystore:{{ lists_dev_ks_db_pass }}@localhost/kittystore'
|
||||
USE_MOCKUPS = False
|
||||
@@ -1,37 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of HyperKitty.
|
||||
#
|
||||
# HyperKitty is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free
|
||||
# Software Foundation, either version 3 of the License, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# HyperKitty is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
# more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# HyperKitty. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import hyperkitty
|
||||
|
||||
from django.conf.urls.defaults import *
|
||||
from django.conf import settings
|
||||
|
||||
# Uncomment the next two lines to enable the admin:
|
||||
from django.contrib import admin
|
||||
admin.autodiscover()
|
||||
|
||||
# Import mailman urls and set urlpatterns if you want to hook
|
||||
# mailman_django into an existing django site.
|
||||
# Otherwise set ROOT_URLCONF in settings.py to
|
||||
# `mailman_django.urls`.
|
||||
# from mailman_django import urls as mailman_urls
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', 'hyperkitty.views.pages.index'),
|
||||
url(r'', include('hyperkitty.urls')),
|
||||
)
|
||||
@@ -1,25 +0,0 @@
|
||||
# This is the absolute bare minimum base configuration file. User supplied
|
||||
# configurations are pushed onto this.
|
||||
|
||||
[mailman]
|
||||
site_owner: root@localhost
|
||||
|
||||
# Set the paths to be Fedora-compliant
|
||||
layout: fhs
|
||||
[paths.fhs]
|
||||
var_dir: /srv/persist/mailman
|
||||
bin_dir: /usr/libexec/mailman
|
||||
lock_dir: /run/lock/mailman
|
||||
pid_file: /run/mailman/master.pid
|
||||
|
||||
[database]
|
||||
class: mailman.database.postgresql.PostgreSQLDatabase
|
||||
url: postgres://mailman:{{ lists_dev_mm_db_pass }}@localhost/mailman
|
||||
|
||||
[archiver.hyperkitty]
|
||||
class: hyperkitty.archiver.Archiver
|
||||
enable: yes
|
||||
configuration: /etc/mailman.d/hyperkitty.cfg
|
||||
|
||||
#[archiver.prototype]
|
||||
#enable: yes
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user