[pt-br] Update translation bits.
[tails-test.git] / wiki / src / contribute / working_together / roles / sysadmins.mdwn
blob77d0cfaa91b0d23e900e6cc7b94cdc655ad676aa
1 [[!meta title="System administrators"]]
3 [[!toc levels=2]]
5 <a id="goals"></a>
7 # Goals
9 The Tails system administrators set up and maintain the infrastructure
10 that supports the development and operations of Tails. We aim at
11 making the life of Tails contributors easier, and to improve the quality of
12 the Tails releases.
14 <a id="principles"></a>
16 # Principles
18 ## Infrastructure as code
20 We want to treat system administration like a (free) software
21 development project:
23 * We want to enable people to participate without needing an account
24   on the Tails servers.
25 * We want to review the changes that are applied to our systems.
26 * We want to be able to easily reproduce our systems via
27   automatic deployment.
28 * We want to share knowledge with other people.
30 This is why we try to publish as much as possible of our systems
31 configuration, and to manage our whole infrastructure with
32 configuration management tools. That is, without needing to log
33 into hosts.
35 ## Free Software
37 We use Free Software, as defined by the [Debian Free Software
38 Guidelines](https://www.debian.org/social_contract#guidelines).  
39 The firmware our systems might need are the only exception to
40 this rule.
42 ## Relationships with upstream
44 The [[principles used by the broader Tails
45 project|contribute/relationship_with_upstream]] also apply for
46 system administration.
48 <a id="tools"></a>
50 # Tools
52 The main tools used to manage the Tails infrastructure are:
54 * [Debian](https://www.debian.org/) GNU/Linux; in the vast majority of
55   cases, we run the current stable release
56 * [Puppet](http://projects.puppetlabs.com/projects/puppet),
57   a configuration management system
58 * [Git](http://git-scm.com/) to host and deploy configuration,
59   including our [[Puppet modules|contribute/git#puppet]]
61 <a id="communication"></a>
63 # Communication
65 A few people have write access to the puppetmasters, and can log into
66 the hosts.  
67 They read the <tails-sysadmins@boum.org> encrypted mailing-list.
69 We use Redmine tickets for public discussion and tasks management:
71 * [tasks requiring *Sysadmin*
72   work](https://labs.riseup.net/code/projects/tails/issues?query_id=113)
73 * [tasks belonging to the *Infrastructure*
74   category](https://labs.riseup.net/code/projects/tails/issues?query_id=140)
76 <a id="services"></a>
78 # Services
80 ## APT repository
82 * purpose: host Tails-specific Debian packages
83 * [[documentation|contribute/APT repository]]
84 * access: anyone can read, Tails core developers can write
85 * tools: [[!debpts reprepro]]
86 * configuration: `tails::reprepro` class in [[!tails_gitweb_repo puppet-tails]]
88 ## Bitcoind
90 * purpose: handle the Tails Bitcoin wallet
91 * access: Tails core developers only
92 * tools: [[!debpts bitcoind]]
93 * configuration: `bitcoind` class in [[!tails_gitweb_repo puppet-bitcoind]]
95 ## BitTorrent
97 * purpose: seed the new ISO image when preparing a release
98 * [[documentation|contribute/release_process]]
99 * access: anyone can read, Tails core developers can write
100 * tools: [[!debpts transmission-daemon]]
101 * configuration: done by hand ([[!tails_ticket 6926]])
103 ## Debian package builder
105 * purpose: build Tails-specific Debian packages
106 * [[documentation|contribute/Debian_package_builder]]
107 * access: Tails core developers only
108 * tools: [[!debpts debomatic desc="Deb-o-Matic"]]
109 * configuration: hard-coded in the manifest ([[!tails_ticket 6920]])
111 ## Gitolite
113 * purpose: host Git repositories used by the puppetmaster and other
114   services; mostly useless for humans
115 * access: Tails core developers only
116 * tools: [[!debpts gitolite]]
117 * configuration: `tails::gitolite` class in [[!tails_gitweb_repo
118   puppet-tails]]
120 ## Jenkins
122 * purpose: continuous integration, e.g. build Tails ISO images from
123   source and run test suites
124 * access: only Tails core developers can see the Jenkins web interface
125   ([[!tails_ticket 6270]]); anyone can [[download the built
126   products|contribute/how/testing]]
127 * tools: [[!debpts jenkins desc="Jenkins"]], [[!debpts jenkins-job-builder]]
128 * configuration:
129   - master:
130     * `jenkins` class in [[!tails_gitweb_repo puppet-jenkins]]
131     * `tails::jenkins::master` class in [[!tails_gitweb_repo puppet-tails]]
132     * a few Jenkins plugins installed with `jenkins::plugin`
133     * YAML jobs configuration lives in a dedicated Git repository;
134       jenkins-job-builder uses it to configure Jenkins
135   - slaves:
136     * `tails::builder` class in [[!tails_gitweb_repo puppet-tails]]
137     * some configuration in the manifest ([[!tails_ticket 7106]])
138   - web server:
139     * some configuration in the manifest ([[!tails_ticket 7107]])
141 ## rsync
143 * purpose: provide content to the public rsync server, from which all
144   HTTP mirrors in turn pull
145 * access: read-only for those who need it, read-write for Tails core
146   developers
147 * tools: [[!debpts rsync]]
148 * configuration: `tails::rsync` in [[!tails_gitweb_repo puppet-tails]]
150 ## Tor bridge
152 * purpose: provide a Tor bridge that Tails contributors can easily use
153   for testing
154 * access: anyone who gets it from
155   [BridgeDB](https://bridges.torproject.org/)
156 * tools: [[!debpts tor]], [[!debpts obfsproxy]]
157 * configuration:
158   - `tails::apt::repository::torproject` in
159     [[!tails_gitweb_repo puppet-tails]]
160   - `tor::daemon::relay` in [[!tails_gitweb_repo puppet-tor]]
162 ## Web server
164 * purpose: serve web content for any other service that need it
165 * access: depending on the service
166 * tools: [[!debpts nginx]]
167 * configuration:
168   - `nginx` class in [[!tails_gitweb_repo puppet-nginx]]
169   - hard-coded manifest snippets and files on the puppetmaster
170     ([[!tails_ticket 6938]])
172 ## WhisperBack relay
174 * purpose: forward bug reports sent with WhisperBack to <tails-bugs@boum.org>
175 * access: public; WhisperBack (and hence, any bug reporter) uses it
176 * tools: [[!debpts postfix desc="Postfix"]]
177 * configuration: `tails::whisperback::relay` in [[!tails_gitweb_repo puppet-tails]]