Commit graph

184 commits

Author SHA1 Message Date
Lance Edgar 8c08412d7b Be more discerning about how/when we cache ssh host key 2020-10-09 16:09:34 -05:00
Lance Edgar 47c27eaba5 Don't use sudo for parts of postgresql.restore_db()
since apparently that is a problem
2020-10-08 13:58:55 -05:00
Lance Edgar caf94ac65a Add port and user kwargs for ssh.cache_host_key()
deprecate the `for_user` kwarg.  this also will now try a basic command over
ssh before bothering with an update/cache for the host key
2020-10-08 13:15:06 -05:00
Lance Edgar 97ed8eeff0 Split up the dump/restore DB logic for postgresql
so that i can swap out portions of that in order to use rsync for big DBs
2020-10-07 17:54:45 -05:00
Lance Edgar 96f950d958 Try to set mysql user password in 2 different ways
so some versions of MySQL and/or MariaDB do not agree as to how the password
should be set?  weird, but oh well, hopefully this works everywhere...
2020-09-30 18:19:36 -05:00
Lance Edgar d744257af6 Allow specifying python binary for common backup app environment
also be sure to upgrade setuptools, wheel for it.  this is needed esp. when
deploying to older machines e.g. debian 8
2020-09-29 17:59:31 -05:00
Lance Edgar c67cc74d3d Add apt.upgrade() convenience function 2020-09-29 17:59:21 -05:00
Lance Edgar c9aebd84e9 Change how we set password when creating a MySQL user
the way we were doing it just failed on MySQL (proper, not MariaDB) 8.0
2020-09-26 14:35:52 -05:00
Lance Edgar c2cca7aa76 Update changelog 2020-09-25 18:05:38 -05:00
Lance Edgar 7471dd1bf5 Add is_debian() convenience function 2020-09-23 22:40:59 -05:00
Lance Edgar e8821b3395 Add mssql module for installing MS SQL Server ODBC driver 2020-09-23 22:40:27 -05:00
Lance Edgar 19fcc94dc7 Add method kwarg for python.install_pip()
ugh, this still needs to be better probably
2020-09-20 17:43:50 -05:00
Lance Edgar 6d8cf3adb6 Add "auto" method of installing pip 2020-09-18 15:38:56 -05:00
Lance Edgar 6cf17a054b Pass arbitrary kwargs along, for apt.install()
also return the result
2020-09-18 15:38:20 -05:00
Lance Edgar 6cb6ddaba7 Allow kwargs for template context when deploying sudoers file 2020-09-16 15:48:34 -05:00
Lance Edgar d6a11908ce Update changelog 2020-09-08 18:03:07 -05:00
Lance Edgar 3d5b7c1d6e Improve support for installing pip etc. on python3
namely this is for the sake of newer Ubuntu which doesn't include python2 by
default, and this affects some other package names
2020-09-08 18:01:53 -05:00
Lance Edgar 84c345ce39 Update changelog 2020-09-08 16:15:44 -05:00
Lance Edgar 659f43d5ee Update changelog 2020-09-08 15:21:14 -05:00
Lance Edgar 8f541c30b3 Allow specifying which version of nodejs to install 2020-09-08 15:19:08 -05:00
Lance Edgar 08e030c8c7 Allow specifying git branch, when installing FreeTDS from source 2020-09-08 15:18:51 -05:00
Lance Edgar a293ed4012 Make 'gperf' a pre-requisite for FreeTDS source install 2020-08-21 13:47:02 -05:00
Lance Edgar f6bc14f94c Add more options when installing pip, virtualenvwrapper
some of these were needed to support an older Ubuntu 14.04 machine
2020-03-31 21:31:54 -05:00
Lance Edgar 218d9e5476 Install libsqlite3-dev when installing pythonz
since it's needed to build python w/ sqlite3 support
2020-03-22 17:28:00 -05:00
Lance Edgar 720010d889 Allow global registration of custom versions of python 2020-03-22 17:19:10 -05:00
Lance Edgar 3b3cb8ab82 Add 'pythonz' logic, for installing arbitrary versions of python 2020-03-22 17:07:52 -05:00
Lance Edgar 32dda9742e Add more flexible retry config for Luigi, for overnight backups 2020-03-22 15:40:51 -05:00
Lance Edgar 679ffe817c Add the apache.stop() convenience function 2020-03-22 15:04:12 -05:00
Lance Edgar 7590760569 Add some more mysql functions, copied from rattail-fabric 2020-03-21 16:42:19 -05:00
Lance Edgar 9ad1716bad Add logic to install POD images 2020-03-21 16:42:06 -05:00
Lance Edgar e290be05c6 Fix command invocation for agent_sudo()
at least, this worked for a recent test...where previous code didn't
2020-02-20 17:44:54 -06:00
Lance Edgar 98a64c5024 Add apache.get_php_version() convenience function 2020-02-08 14:38:08 -06:00
Lance Edgar 4315799e1d Fix permission bug when configuring virtualenvwrapper 2020-02-08 14:37:57 -06:00
Lance Edgar f584cf7e16 Add util.uncomment() function
copied from fabric v1
2020-02-07 11:29:53 -06:00
Lance Edgar 88a08fcf8f Try to suppress output when setting password for postgresql 2020-02-06 23:23:08 -06:00
Lance Edgar 56acb30008 Add postgresql.reload() function 2019-10-29 20:55:24 -05:00
Lance Edgar 5eea62688e Fix some permission errors 2019-10-16 19:32:22 -05:00
Lance Edgar 9f066ca859 Add scripts for checking supervisor process, systemd service 2019-10-14 20:32:35 -05:00
Lance Edgar f441ac7b25 Change how we install JDK for headless libreoffice server 2019-10-07 22:20:30 -05:00
Lance Edgar c45e1a9187 Expose the Deployer class in root package namespace 2019-10-07 22:20:08 -05:00
Lance Edgar 325f85a4b3 Add postgresql.create_schema() 2019-10-04 23:08:39 -05:00
Lance Edgar 0b5f6234ad Add upgrade, restart-overnight-backups scripts for generic backup app 2019-09-30 15:37:21 -05:00
Lance Edgar 067c02e965 Add logic for installing luigi service as part of backup app 2019-09-27 15:51:10 -05:00
Lance Edgar 477af6c6a0 Add TODO comment 2019-09-26 22:02:02 -05:00
Lance Edgar 8e34ee2f17 Add apache.stop() function 2019-09-26 22:01:45 -05:00
Lance Edgar baea97957c Add sed() convenience function
copied from fabric1 src
2019-09-26 22:01:23 -05:00
Lance Edgar 85baacecc1 Add apache.install_wsgi() convenience function
although you really shouldn't use it
2019-09-25 14:17:44 -05:00
Lance Edgar e81f4afa8f Add nodejs.install() for "typical" nvm / node.js install
also some related tweaks, necessary for that
2019-09-23 15:26:28 -05:00
Lance Edgar 21bdc2b391 Add postgresql.get_version() function 2019-09-23 15:25:39 -05:00
Lance Edgar fef0ccbac5 Always make backup config owned by 'root' user
instead of the `user` specified by caller, since we'll always expect to run the
actual backup commands as root
2019-09-22 20:15:15 -05:00
Lance Edgar c933f36ed6 Install symlink for /usr/local/bin/borg -> /srv/envs/backup/bin/borg
by default, but can skip if so invoked.  makes for nicer usage though, for sure
2019-09-16 14:52:36 -05:00
Lance Edgar 6d9006db9d Pass along user when making virtualenv for backup app
i.e. stop assuming 'root' user for that
2019-09-13 19:56:30 -05:00
Lance Edgar cd421f3aa1 Fix behavior of is_link() function when a check fails 2019-09-13 17:53:28 -05:00
Lance Edgar 5a9035ffd3 Make deploy.backup_app() more generic
so e.g. can install borg but skip rattail
2019-09-13 13:24:18 -05:00
Lance Edgar 68088a6e71 Add generic bootstrap_python() logic 2019-09-13 13:24:18 -05:00
Lance Edgar aa3ef708ad Add logic for installing headless LibreOffice daemon 2019-09-13 13:24:18 -05:00
Lance Edgar 0430829c02 Add freetds.install_from_source() 2019-09-13 13:24:18 -05:00
Lance Edgar b9c8a8d104 Add postgresql.restart() convenience function 2019-09-13 13:24:18 -05:00
Lance Edgar 6b01b0d70d Add postfix.set_myorigin() and set_mynetworks() 2019-09-13 13:24:09 -05:00
Lance Edgar 7b939ec4a3 Fix bug in append() when sudo was involved (?) 2019-09-12 22:05:47 -05:00
Lance Edgar c0eed0e969 Add rattail.deploy_machine_conf() for basic machine-wide rattail.conf 2019-09-12 14:53:35 -05:00
Lance Edgar faefb60cd6 Tweak backup scripts to ensure sudo -H is effectively in use 2019-09-11 19:28:58 -05:00
Lance Edgar 63b86593f1 Deploy generic rattail-backup script for backup apps 2019-09-11 18:36:43 -05:00
Lance Edgar 9adc5a5b79 Tweak how backups are configured, to be a tad more generic 2019-09-11 17:33:40 -05:00
Lance Edgar 74308b26a5 Add core rsync() function
also `agent_sudo()` i guess, but that whole thing is decidedly less convenient
now than it used to be.  need to figure out a way to temporarily enable agent
forwarding from within the fabric, if possible...
2019-09-09 14:19:26 -05:00
Lance Edgar 7fe63b9f19 Install python3-certbot-apache for debian 10
when applicable
2019-09-09 14:19:03 -05:00
Lance Edgar 039af4b394 Tweak mysql.sql() to allow suppressing echo and output
also install default-mysql-server now, per latest debian
2019-09-09 14:18:11 -05:00
Lance Edgar f787b3ad79 Add set_myhostname() and set_mydestination() for postfix 2019-09-09 14:17:49 -05:00
Lance Edgar fec1c66422 Fix bug for ssh.set_config() 2019-09-09 14:17:35 -05:00
Lance Edgar 6e5131ad46 Add libssl-dev dependency for borg 2019-09-05 19:05:40 -05:00
Lance Edgar 8221537728 Remove unused user kwarg to python.mkvirtualenv() function
guess that used to be a thing?  but no longer
2019-09-05 17:55:42 -05:00
Lance Edgar eae08ad5d4 Force using sudo "as root" for various mysql commands
this lets us leverage `/root/.my.cnf` b/c it uses `sudo -H`
2019-08-10 02:44:44 -05:00
Lance Edgar 3771688660 Add ssh.set_config() convenience function 2019-08-10 02:41:26 -05:00
Lance Edgar 5a7a122e2d Add mysql.table_exists() convenience function 2019-08-06 18:25:14 -05:00
Lance Edgar 72c03a8ac9 Add contains() and append() convenience functions
basically stolen from Fabric v1 source code
2019-07-23 19:07:14 -05:00
Lance Edgar bac78764d0 Fix how we run sudo commands as postgres user 2019-02-19 22:36:35 -06:00
Lance Edgar 0a33e7569b Add some cleanup functions for use when cloning rattail DBs
i.e. disable some email config
2019-02-19 22:15:16 -06:00
Lance Edgar bc4a8a686e Add functions to deploy, enable apache config files 2019-02-16 18:21:40 -06:00
Lance Edgar 05d6e093a7 Improve logic for locking down SSH config
what a tricky mess
2019-02-09 17:55:12 -06:00
Lance Edgar 93c2db902e Add basic support for installing CORE Office (aka. Fannie)
plus various other things, to that end
2019-02-09 17:20:46 -06:00
Lance Edgar bd4768839a Port logic for deploying a "backup" app 2019-01-06 14:14:47 -06:00
Lance Edgar c2fe7586da Port "most" of mysql logic from rattail-fabric
seems i maybe just forgot to commit this last time?
2019-01-06 14:14:21 -06:00
Lance Edgar 76ab2915c8 Add functions for cloning postgres DB 2018-12-03 22:14:55 -06:00
Lance Edgar e8769c8245 Initial commit; enough to prove concepts at least
was able to bootstrap a complete machine with this, although there's lots
missing yet...
2018-12-03 01:11:38 -06:00