Closed
Bug 1187090
Opened 10 years ago
Closed 10 years ago
Unify hg-web and docker-hg-web Ansible roles
Categories
(Developer Services :: Mercurial: hg.mozilla.org, defect, P1)
Developer Services
Mercurial: hg.mozilla.org
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: gps, Assigned: gps)
References
Details
Attachments
(13 files)
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
fubar
:
review+
|
Details |
40 bytes,
text/x-review-board-request
|
fubar
:
review+
|
Details |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
fubar
:
review+
|
Details |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details | |
40 bytes,
text/x-review-board-request
|
Details |
We currently have hg-web and docker-hg-web ansible roles. They don't share any code. The ideal is for docker-hg-web to use the hg-web role and do Docker-specific things on top of hg-web. Let's do this work so our Docker and production environments converge in behavior.
fubar: warning: this will be a long commit series. But every commit should be rather small and easy to understand.
Assignee | ||
Comment 1•10 years ago
|
||
ansible/hg-web: don't install python-pygments package (bug 1187090); r?fubar
Now that we run hgweb out of a virtualenv, we no longer need some Python
packages installed against the system Python. Don't install pygments
against the system Python because it won't be used.
We could probably remove simplejson and argparse as well, but I'm not
100% confident about their lack of usage.
Attachment #8638203 -
Flags: review?(klibby)
Assignee | ||
Comment 2•10 years ago
|
||
ansible/hg-web: only install python27 package if Mozilla yum repo configured (bug 1187090); r?fubar
The hg-web and docker-hg-web Ansible roles are fully divergent and have
lots of duplicate functionality. This commit starts the process of
making the hg-web role suitable for use in Docker.
Mozilla's yum repositories aren't available outside of Mozilla's
firewall. Therefore the "python27" package is not available to Docker
(unless running inside Mozilla's firewall, which we don't want to make a
development requirement). Only install python27 from yum if the Mozilla
yum repo is configured.
There is probably a better way to test for a yum repo's existence. But
looking for existence of the file is sufficient for Mozilla's servers.
Attachment #8638204 -
Flags: review?(klibby)
Assignee | ||
Comment 3•10 years ago
|
||
ansible/hg-web: install Python 2.7 direct from RPMs when yum not available (bug 1187090); r?fubar
In Docker, the Mozilla yum repository isn't available and the "python27"
package can't be installed from there. Add the ability to install RPMs
directly by downloading them from gps's people directory.
Yes, this is hacky. But, there is precedent for this approach elsewhere.
We should eventually stand up our own yum repo on the public internet so
Docker and production can share the same packages. But that is a
non-trivial amount of work.
Attachment #8638205 -
Flags: review?(klibby)
Assignee | ||
Comment 4•10 years ago
|
||
ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r?fubar
We want the docker-hg-web role to be built on top of hg-web, not for
there to be divergent roles. Make hg-web a role dependency of
docker-hg-web so we can start working towards this goal.
This does break the Docker hgweb environment. But some breakage is
needed to manage a change this large. The following commits will unbust
things.
Attachment #8638206 -
Flags: review?(klibby)
Assignee | ||
Comment 5•10 years ago
|
||
ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r?fubar
We never added this to hg-web because the servers already had it. Now
that we're moving Docker to use the hg-web role, we need this logic in
hg-web.
Note that the docker-hg-web symlink was incorrect. Production has
/repo/hg -> /repo_local/mozilla. Also, Ansible's terminology around
links is also kinda weird. This is more confusing than it needs to be.
Attachment #8638207 -
Flags: review?(klibby)
Assignee | ||
Comment 6•10 years ago
|
||
ansible/hg-web: configure hg user's ssh settings (bug 1187090); r?fubar
This is a simple move of logic from docker-hg-web to hg-web.
docker-hg-web was based on the state of an actual hgweb server and the
Puppet configuration. So this should be trusted.
I confirmed as part of this refactoring that the ssh_config file
contents in Ansible match what is in production.
Of course, we'll eventually need to rewrite the ssh_config file to be a
template since the hostname of the hgssh server in the Docker cluster
will almost certainly not be "hg.mozilla.org" (unless we install a hosts
entry). But that's for another day.
Attachment #8638208 -
Flags: review?(klibby)
Assignee | ||
Comment 7•10 years ago
|
||
ansible/hg-web: create hg user and group consistently with production (bug 1187090); r?fubar
We want Docker and production to align as closely as possible. The hg
user/group is managed by Puppet. So, the hg-web changes should no-op on
production. However, the Docker environment will be consistent with
production now.
Attachment #8638209 -
Flags: review?(klibby)
Assignee | ||
Comment 8•10 years ago
|
||
ansible/docker-hg-web: remove hgrc from role (bug 1187090); r?fubar
The hg-web roles already provides a hgrc file. The file contents are 95%
identical. Differences appear to be from the docker variant drifting out
of sync with production.
Attachment #8638210 -
Flags: review?(klibby)
Assignee | ||
Comment 9•10 years ago
|
||
ansible/hg-web: install mercurial package (bug 1187090); r?fubar
Believe it or not, the hg-web role wasn't installing the mercurial
package! Change that. Again, we have to install from RPM if we don't
have access to the yum repo.
Attachment #8638211 -
Flags: review?(klibby)
Assignee | ||
Comment 10•10 years ago
|
||
ansible/hg-web: install cronie (bug 1187090); r?fubar
Docker doesn't have a cron agent installed. cronie seems to be the
CentOS 6 cron package (at least it is what is installed in production).
Without this package, Ansible is unable to configure cron jobs from
Docker.
Attachment #8638212 -
Flags: review?(klibby)
Assignee | ||
Comment 11•10 years ago
|
||
ansible/hg-web: create webroot_wsgi directory (bug 1187090); r?fubar
Without this, the chown of this directory later on fails on Docker
because the directory doesn't exist.
With this commit, we are once again able to build the hgweb Docker
images! Only this time we're using the hg-web role.
Attachment #8638213 -
Flags: review?(klibby)
Assignee | ||
Comment 12•10 years ago
|
||
ansible/docker-hg-web: remove httpd configs (bug 1187090); r?fubar
hg-web already provides httpd config files and docker-hg-web's copies
are mostly that: redundant copies.
The httpd.conf file is identical with the exception of the ServerLimit and
MaxClients lines, which use templatized values in the case of hg-web. This
should "just work" on docker-hg-web. If not, we can fix it later.
The mod_wsgi.conf file content is identical between both versions.
vhost.conf does vary a bit. Manual inspection reveals this is mostly due
to hg-web's copy being updated and docker-hg-web's drifting out of sync.
Whatever the reason, we want to be based on hg-web, so remove the
docker-hg-web version.
Attachment #8638214 -
Flags: review?(klibby)
Assignee | ||
Comment 13•10 years ago
|
||
ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r?fubar
The removes packages are all installed by the hg-web role.
Attachment #8638215 -
Flags: review?(klibby)
Updated•10 years ago
|
Attachment #8638203 -
Flags: review?(klibby) → review+
Comment 14•10 years ago
|
||
Comment on attachment 8638203 [details]
MozReview Request: ansible/hg-web: don't install python-pygments package (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14049/#review12621
Ship It!
Updated•10 years ago
|
Attachment #8638204 -
Flags: review?(klibby)
Comment 15•10 years ago
|
||
Comment on attachment 8638204 [details]
MozReview Request: ansible/hg-web: configure IUS Community repository (bug 1187090); r?fubar
https://reviewboard.mozilla.org/r/14051/#review12623
The python27 rpms in mrepo are actually from the IUS Community projects (https://iuscommunity.org/pages/Repos.html), just hosted locally (and not automatically updated). How about using that instead?
Comment 16•10 years ago
|
||
Comment on attachment 8638207 [details]
MozReview Request: ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14057/#review12625
Ship It!
Attachment #8638207 -
Flags: review?(klibby) → review+
Comment 17•10 years ago
|
||
Comment on attachment 8638208 [details]
MozReview Request: ansible/hg-web: configure hg user's ssh settings (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14059/#review12627
Ship It!
Attachment #8638208 -
Flags: review?(klibby) → review+
Comment 18•10 years ago
|
||
Comment on attachment 8638209 [details]
MozReview Request: ansible/hg-web: create hg user and group consistently with production (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14061/#review12629
Actually, the hg user on hgweb* is NOT managed by puppet. It is managed by puppet on hgssh*, though, and with a different UID (500 vs 5507 (which appears to just be the next available UID on the system)).
Attachment #8638209 -
Flags: review?(klibby) → review+
Comment 19•10 years ago
|
||
Comment on attachment 8638210 [details]
MozReview Request: ansible/docker-hg-web: remove hgrc from role (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14063/#review12631
Ship It!
Attachment #8638210 -
Flags: review?(klibby) → review+
Comment 20•10 years ago
|
||
Comment on attachment 8638211 [details]
MozReview Request: ansible/hg-web: install mercurial package (bug 1187090); r?fubar
https://reviewboard.mozilla.org/r/14065/#review12633
Sadly, IUS doesn't have mercurial packages, so my earlier suggestion for python27 fails here. /sadtrombone
How about using an S3 bucket instead of people.m.o? While people is convenient, it's availability is not guaranteed.
Attachment #8638211 -
Flags: review?(klibby) → review+
Comment 21•10 years ago
|
||
Comment on attachment 8638212 [details]
MozReview Request: ansible/hg-web: install cronie (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14067/#review12635
Ship It!
Attachment #8638212 -
Flags: review?(klibby) → review+
Updated•10 years ago
|
Attachment #8638213 -
Flags: review?(klibby) → review+
Comment 22•10 years ago
|
||
Comment on attachment 8638213 [details]
MozReview Request: ansible/hg-web: create webroot_wsgi directory (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14069/#review12637
Ship It!
Comment 23•10 years ago
|
||
Comment on attachment 8638214 [details]
MozReview Request: ansible/docker-hg-web: remove httpd configs (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14071/#review12639
Ship It!
Attachment #8638214 -
Flags: review?(klibby) → review+
Comment 24•10 years ago
|
||
Comment on attachment 8638215 [details]
MozReview Request: ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14073/#review12641
Ship It!
Attachment #8638215 -
Flags: review?(klibby) → review+
Comment 25•10 years ago
|
||
Comment on attachment 8638206 [details]
MozReview Request: ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r=fubar
https://reviewboard.mozilla.org/r/14055/#review12643
Ship It!
Attachment #8638206 -
Flags: review?(klibby) → review+
Assignee | ||
Comment 26•10 years ago
|
||
https://reviewboard.mozilla.org/r/14051/#review12623
Oh, I had no idea! Thanks for the pointer!
Assignee | ||
Comment 27•10 years ago
|
||
https://reviewboard.mozilla.org/r/14061/#review12629
Interesting.
Over in the chroot bug, I noticed that Puppet (or something) is removing the "mozbuild" user from hgweb1. (It must be not-Puppet because Puppet is disabled on that host currently.) Also, if you look at the Puppet logs for any of the other hgweb machines, they are reporting an error trying to apply User[hg]. Could Puppet be trying to remove the "hg" user since it isn't managed by Puppet?
Assignee | ||
Comment 28•10 years ago
|
||
https://reviewboard.mozilla.org/r/14065/#review12633
You know, I was thinking the same thing as I was implementing this. I was hoping not to scope bloat. But while I'm here, I might as well.
Assignee | ||
Comment 29•10 years ago
|
||
Comment on attachment 8638203 [details]
MozReview Request: ansible/hg-web: don't install python-pygments package (bug 1187090); r=fubar
ansible/hg-web: don't install python-pygments package (bug 1187090); r=fubar
Now that we run hgweb out of a virtualenv, we no longer need some Python
packages installed against the system Python. Don't install pygments
against the system Python because it won't be used.
We could probably remove simplejson and argparse as well, but I'm not
100% confident about their lack of usage.
Attachment #8638203 -
Attachment description: MozReview Request: ansible/hg-web: don't install python-pygments package (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: don't install python-pygments package (bug 1187090); r=fubar
Attachment #8638203 -
Flags: review+
Assignee | ||
Updated•10 years ago
|
Attachment #8638204 -
Attachment description: MozReview Request: ansible/hg-web: only install python27 package if Mozilla yum repo configured (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: configure IUS Community repository (bug 1187090); r?fubar
Attachment #8638204 -
Flags: review?(klibby)
Assignee | ||
Comment 30•10 years ago
|
||
Comment on attachment 8638204 [details]
MozReview Request: ansible/hg-web: configure IUS Community repository (bug 1187090); r?fubar
ansible/hg-web: configure IUS Community repository (bug 1187090); r?fubar
Currently, Python 2.7 packages come from Mozilla's internal yum repo.
This repo is behind a firewall and not public. This poses a problem for
our Docker environment because we need to install Python 2.7 packages.
The packages inside Mozilla's repo that we care about are all copies
from the IUS Community repositories
(https://iuscommunity.org/pages/Repos.html). So, just configure the
canonical upstream repo.
Assignee | ||
Comment 31•10 years ago
|
||
Comment on attachment 8638206 [details]
MozReview Request: ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r=fubar
ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r=fubar
We want the docker-hg-web role to be built on top of hg-web, not for
there to be divergent roles. Make hg-web a role dependency of
docker-hg-web so we can start working towards this goal.
This does break the Docker hgweb environment. But some breakage is
needed to manage a change this large. The following commits will unbust
things.
Attachment #8638206 -
Attachment description: MozReview Request: ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r?fubar → MozReview Request: ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r=fubar
Attachment #8638206 -
Flags: review+
Assignee | ||
Comment 32•10 years ago
|
||
Comment on attachment 8638207 [details]
MozReview Request: ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r=fubar
ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r=fubar
We never added this to hg-web because the servers already had it. Now
that we're moving Docker to use the hg-web role, we need this logic in
hg-web.
Note that the docker-hg-web symlink was incorrect. Production has
/repo/hg -> /repo_local/mozilla. Also, Ansible's terminology around
links is also kinda weird. This is more confusing than it needs to be.
Attachment #8638207 -
Attachment description: MozReview Request: ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r=fubar
Attachment #8638207 -
Flags: review+
Assignee | ||
Comment 33•10 years ago
|
||
Comment on attachment 8638208 [details]
MozReview Request: ansible/hg-web: configure hg user's ssh settings (bug 1187090); r=fubar
ansible/hg-web: configure hg user's ssh settings (bug 1187090); r=fubar
This is a simple move of logic from docker-hg-web to hg-web.
docker-hg-web was based on the state of an actual hgweb server and the
Puppet configuration. So this should be trusted.
I confirmed as part of this refactoring that the ssh_config file
contents in Ansible match what is in production.
Of course, we'll eventually need to rewrite the ssh_config file to be a
template since the hostname of the hgssh server in the Docker cluster
will almost certainly not be "hg.mozilla.org" (unless we install a hosts
entry). But that's for another day.
Attachment #8638208 -
Attachment description: MozReview Request: ansible/hg-web: configure hg user's ssh settings (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: configure hg user's ssh settings (bug 1187090); r=fubar
Attachment #8638208 -
Flags: review+
Assignee | ||
Comment 34•10 years ago
|
||
Comment on attachment 8638209 [details]
MozReview Request: ansible/hg-web: create hg user and group consistently with production (bug 1187090); r=fubar
ansible/hg-web: create hg user and group consistently with production (bug 1187090); r=fubar
We want Docker and production to align as closely as possible. The hg
user/group was formerly managed by Puppet and has these values. Inherit
them.
Attachment #8638209 -
Attachment description: MozReview Request: ansible/hg-web: create hg user and group consistently with production (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: create hg user and group consistently with production (bug 1187090); r=fubar
Attachment #8638209 -
Flags: review+
Assignee | ||
Updated•10 years ago
|
Attachment #8638210 -
Attachment description: MozReview Request: ansible/docker-hg-web: remove hgrc from role (bug 1187090); r?fubar → MozReview Request: ansible/docker-hg-web: remove hgrc from role (bug 1187090); r=fubar
Attachment #8638210 -
Flags: review+
Assignee | ||
Comment 35•10 years ago
|
||
Comment on attachment 8638210 [details]
MozReview Request: ansible/docker-hg-web: remove hgrc from role (bug 1187090); r=fubar
ansible/docker-hg-web: remove hgrc from role (bug 1187090); r=fubar
The hg-web roles already provides a hgrc file. The file contents are 95%
identical. Differences appear to be from the docker variant drifting out
of sync with production.
Assignee | ||
Comment 36•10 years ago
|
||
Comment on attachment 8638211 [details]
MozReview Request: ansible/hg-web: install mercurial package (bug 1187090); r?fubar
ansible/hg-web: install mercurial package (bug 1187090); r?fubar
Believe it or not, the hg-web role wasn't installing the mercurial
package! Change that. Again, we have to install from RPM if we don't
have access to the yum repo.
Attachment #8638211 -
Flags: review+ → review?(klibby)
Assignee | ||
Comment 37•10 years ago
|
||
Comment on attachment 8638205 [details]
MozReview Request: ansible/hg-web: install an older version of virtualenv (bug 1187090); r?fubar
ansible/hg-web: install an older version of virtualenv (bug 1187090); r?fubar
The virtualenv package in the IUS repository isn't compatible with peep
due to peep not yet being compatible with pip 7. Work around this issue
by installing an old version of virtualenv.
Attachment #8638205 -
Attachment description: MozReview Request: ansible/hg-web: install Python 2.7 direct from RPMs when yum not available (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: install an older version of virtualenv (bug 1187090); r?fubar
Assignee | ||
Comment 38•10 years ago
|
||
Comment on attachment 8638212 [details]
MozReview Request: ansible/hg-web: install cronie (bug 1187090); r=fubar
ansible/hg-web: install cronie (bug 1187090); r=fubar
Docker doesn't have a cron agent installed. cronie seems to be the
CentOS 6 cron package (at least it is what is installed in production).
Without this package, Ansible is unable to configure cron jobs from
Docker.
Attachment #8638212 -
Attachment description: MozReview Request: ansible/hg-web: install cronie (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: install cronie (bug 1187090); r=fubar
Attachment #8638212 -
Flags: review+
Assignee | ||
Comment 39•10 years ago
|
||
Comment on attachment 8638213 [details]
MozReview Request: ansible/hg-web: create webroot_wsgi directory (bug 1187090); r=fubar
ansible/hg-web: create webroot_wsgi directory (bug 1187090); r=fubar
Without this, the chown of this directory later on fails on Docker
because the directory doesn't exist.
With this commit, we are once again able to build the hgweb Docker
images! Only this time we're using the hg-web role.
Attachment #8638213 -
Attachment description: MozReview Request: ansible/hg-web: create webroot_wsgi directory (bug 1187090); r?fubar → MozReview Request: ansible/hg-web: create webroot_wsgi directory (bug 1187090); r=fubar
Attachment #8638213 -
Flags: review+
Assignee | ||
Comment 40•10 years ago
|
||
Comment on attachment 8638214 [details]
MozReview Request: ansible/docker-hg-web: remove httpd configs (bug 1187090); r=fubar
ansible/docker-hg-web: remove httpd configs (bug 1187090); r=fubar
hg-web already provides httpd config files and docker-hg-web's copies
are mostly that: redundant copies.
The httpd.conf file is identical with the exception of the ServerLimit and
MaxClients lines, which use templatized values in the case of hg-web. This
should "just work" on docker-hg-web. If not, we can fix it later.
The mod_wsgi.conf file content is identical between both versions.
vhost.conf does vary a bit. Manual inspection reveals this is mostly due
to hg-web's copy being updated and docker-hg-web's drifting out of sync.
Whatever the reason, we want to be based on hg-web, so remove the
docker-hg-web version.
Attachment #8638214 -
Attachment description: MozReview Request: ansible/docker-hg-web: remove httpd configs (bug 1187090); r?fubar → MozReview Request: ansible/docker-hg-web: remove httpd configs (bug 1187090); r=fubar
Attachment #8638214 -
Flags: review+
Assignee | ||
Comment 41•10 years ago
|
||
Comment on attachment 8638215 [details]
MozReview Request: ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r=fubar
ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r=fubar
The removes packages are all installed by the hg-web role.
Attachment #8638215 -
Attachment description: MozReview Request: ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r?fubar → MozReview Request: ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r=fubar
Attachment #8638215 -
Flags: review+
Updated•10 years ago
|
Attachment #8638204 -
Flags: review?(klibby) → review+
Comment 42•10 years ago
|
||
Comment on attachment 8638204 [details]
MozReview Request: ansible/hg-web: configure IUS Community repository (bug 1187090); r?fubar
https://reviewboard.mozilla.org/r/14051/#review12689
Ship It!
Updated•10 years ago
|
Attachment #8638211 -
Flags: review?(klibby) → review+
Comment 43•10 years ago
|
||
Comment on attachment 8638211 [details]
MozReview Request: ansible/hg-web: install mercurial package (bug 1187090); r?fubar
https://reviewboard.mozilla.org/r/14065/#review12691
Ship It!
Comment 44•10 years ago
|
||
Comment on attachment 8638205 [details]
MozReview Request: ansible/hg-web: install an older version of virtualenv (bug 1187090); r?fubar
https://reviewboard.mozilla.org/r/14053/#review12693
Ship It!
Attachment #8638205 -
Flags: review?(klibby) → review+
Assignee | ||
Comment 45•10 years ago
|
||
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/ef7d31bcabd3a619cac02f5d32c35d2c5a917554
changeset: ef7d31bcabd3a619cac02f5d32c35d2c5a917554
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 14:10:17 2015 -0700
description:
ansible/hg-web: don't install python-pygments package (bug 1187090); r=fubar
Now that we run hgweb out of a virtualenv, we no longer need some Python
packages installed against the system Python. Don't install pygments
against the system Python because it won't be used.
We could probably remove simplejson and argparse as well, but I'm not
100% confident about their lack of usage.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/245a29a22322dda2b01d3474175e7f935f8dc854
changeset: 245a29a22322dda2b01d3474175e7f935f8dc854
user: Gregory Szorc <gps@mozilla.com>
date: Fri Jul 24 11:02:41 2015 -0700
description:
ansible/hg-web: configure IUS Community repository (bug 1187090); r=fubar
Currently, Python 2.7 packages come from Mozilla's internal yum repo.
This repo is behind a firewall and not public. This poses a problem for
our Docker environment because we need to install Python 2.7 packages.
The packages inside Mozilla's repo that we care about are all copies
from the IUS Community repositories
(https://iuscommunity.org/pages/Repos.html). So, just configure the
canonical upstream repo.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/7db3c72ae432ff595db5415ea37f55dca8438351
changeset: 7db3c72ae432ff595db5415ea37f55dca8438351
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 14:34:43 2015 -0700
description:
ansible/docker-hg-web: make hg-web a role dependency (bug 1187090); r=fubar
We want the docker-hg-web role to be built on top of hg-web, not for
there to be divergent roles. Make hg-web a role dependency of
docker-hg-web so we can start working towards this goal.
This does break the Docker hgweb environment. But some breakage is
needed to manage a change this large. The following commits will unbust
things.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/f7cc48945bc496d35234674e99d9bfa6fba68167
changeset: f7cc48945bc496d35234674e99d9bfa6fba68167
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 14:41:36 2015 -0700
description:
ansible/hg-web: create /repo and /repo_local directories and symlinks (bug 1187090); r=fubar
We never added this to hg-web because the servers already had it. Now
that we're moving Docker to use the hg-web role, we need this logic in
hg-web.
Note that the docker-hg-web symlink was incorrect. Production has
/repo/hg -> /repo_local/mozilla. Also, Ansible's terminology around
links is also kinda weird. This is more confusing than it needs to be.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/ae9be2160fea312655b7e84755549f46a307776a
changeset: ae9be2160fea312655b7e84755549f46a307776a
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 14:52:51 2015 -0700
description:
ansible/hg-web: configure hg user's ssh settings (bug 1187090); r=fubar
This is a simple move of logic from docker-hg-web to hg-web.
docker-hg-web was based on the state of an actual hgweb server and the
Puppet configuration. So this should be trusted.
I confirmed as part of this refactoring that the ssh_config file
contents in Ansible match what is in production.
Of course, we'll eventually need to rewrite the ssh_config file to be a
template since the hostname of the hgssh server in the Docker cluster
will almost certainly not be "hg.mozilla.org" (unless we install a hosts
entry). But that's for another day.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/668edc7c1662e5ce9de406f24518d8833d3f8d75
changeset: 668edc7c1662e5ce9de406f24518d8833d3f8d75
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 15:00:27 2015 -0700
description:
ansible/hg-web: create hg user and group consistently with production (bug 1187090); r=fubar
We want Docker and production to align as closely as possible. The hg
user/group was formerly managed by Puppet and has these values. Inherit
them.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/ccd5ee0e9412bc8c1c4b0b416258bb31e3232281
changeset: ccd5ee0e9412bc8c1c4b0b416258bb31e3232281
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 15:03:10 2015 -0700
description:
ansible/docker-hg-web: remove hgrc from role (bug 1187090); r=fubar
The hg-web roles already provides a hgrc file. The file contents are 95%
identical. Differences appear to be from the docker variant drifting out
of sync with production.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/8c7a8ba2e73e817c88fe3f0dd9dedbfc4ac7b0be
changeset: 8c7a8ba2e73e817c88fe3f0dd9dedbfc4ac7b0be
user: Gregory Szorc <gps@mozilla.com>
date: Fri Jul 24 12:24:39 2015 -0700
description:
ansible/hg-web: install mercurial package (bug 1187090); r=fubar
Believe it or not, the hg-web role wasn't installing the mercurial
package! Change that. Again, we have to install from RPM if we don't
have access to the yum repo.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/b18f712a10680fd1547b3d602dcbcaa456951744
changeset: b18f712a10680fd1547b3d602dcbcaa456951744
user: Gregory Szorc <gps@mozilla.com>
date: Fri Jul 24 11:12:24 2015 -0700
description:
ansible/hg-web: install an older version of virtualenv (bug 1187090); r=fubar
The virtualenv package in the IUS repository isn't compatible with peep
due to peep not yet being compatible with pip 7. Work around this issue
by installing an old version of virtualenv.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/72dd1270b971fda59d79fbc4d228e9bc697b485d
changeset: 72dd1270b971fda59d79fbc4d228e9bc697b485d
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 16:06:40 2015 -0700
description:
ansible/hg-web: install cronie (bug 1187090); r=fubar
Docker doesn't have a cron agent installed. cronie seems to be the
CentOS 6 cron package (at least it is what is installed in production).
Without this package, Ansible is unable to configure cron jobs from
Docker.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/60f16695ca2edff174cefc0cf637c3293d669695
changeset: 60f16695ca2edff174cefc0cf637c3293d669695
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 16:16:43 2015 -0700
description:
ansible/hg-web: create webroot_wsgi directory (bug 1187090); r=fubar
Without this, the chown of this directory later on fails on Docker
because the directory doesn't exist.
With this commit, we are once again able to build the hgweb Docker
images! Only this time we're using the hg-web role.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/9ab6db56c1ec6bfbdf8e9276868f1e34ee0ad5f7
changeset: 9ab6db56c1ec6bfbdf8e9276868f1e34ee0ad5f7
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 16:28:07 2015 -0700
description:
ansible/docker-hg-web: remove httpd configs (bug 1187090); r=fubar
hg-web already provides httpd config files and docker-hg-web's copies
are mostly that: redundant copies.
The httpd.conf file is identical with the exception of the ServerLimit and
MaxClients lines, which use templatized values in the case of hg-web. This
should "just work" on docker-hg-web. If not, we can fix it later.
The mod_wsgi.conf file content is identical between both versions.
vhost.conf does vary a bit. Manual inspection reveals this is mostly due
to hg-web's copy being updated and docker-hg-web's drifting out of sync.
Whatever the reason, we want to be based on hg-web, so remove the
docker-hg-web version.
url: https://hg.mozilla.org/hgcustom/version-control-tools/rev/a79bed57d61cfef714a064ddbe5f58dbb41502fd
changeset: a79bed57d61cfef714a064ddbe5f58dbb41502fd
user: Gregory Szorc <gps@mozilla.com>
date: Thu Jul 23 16:31:47 2015 -0700
description:
ansible/docker-hg-web: don't redundantly install packages (bug 1187090); r=fubar
The removes packages are all installed by the hg-web role.
Assignee | ||
Comment 46•10 years ago
|
||
While there is still some work to do to merge docker-hg-web into hg-web, I'm calling this bug closed: we've done enough to unblock testing for bug 1139218.
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•