Commit Graph

142 Commits

Author SHA1 Message Date
Digimer
3e2a1faf06 * Updated System->get_os_type() to add comments for RHEL8 and remove Fedora support.
* Updated the pxe.txt template to use RHEL8 and remove Fedora support.
* Updated striker-manage-install-target to support RHEL8 and remove Fedora support.

Signed-off-by: Digimer <digimer@alteeve.ca>
2019-01-25 15:04:57 -05:00
Digimer
b7b4e79e95 * Updated System->check_firewall to use firewall-cmd and the contents of iptables-save is not available/reliable under RHEL8.
* Disabled deletion of unneeded zones.
* Updated the default BCN/SN IPs generated in striker to follow the new schema.

Firewall work continues.

Signed-off-by: Digimer <digimer@alteeve.ca>
2019-01-23 19:54:01 -05:00
Digimer
d2c812ee03 This commit starts the move to RHEL8 from Fedora 28.
* The 'notes' file has a lot of RHEL8 migration notes added, including RPM build orders.
* The anvil.spec file has switched the source from 'master.tar.gz' to 'anvil-3.0b.tar.gz' and moved the source to our webserver. Updated the dependencies as well.
* Updated anvil.sql to add the 'anvils' table and fixed some SQL schema problems.

Signed-off-by: Digimer <digimer@alteeve.ca>
2019-01-17 16:02:57 -05:00
Digimer
02c4fe1fa1 * Updated all perl module modes to remove the executable bit.
* Updated anvil.sql to add the new tables needed for alert mail delivery.
* Update anvil.sql and Database->initialize to now default the user to 'admin' and swap that out if needed, instead of using the #!variable!user!#' replacement variable.
* Started updating anvil.spec for EL8.
* Added support for 'striker::repo::extra-packages' which users can use to add additional packages to the Striker repositories.

Signed-off-by: Digimer <digimer@alteeve.ca>
2019-01-05 18:57:44 -07:00
Digimer
946fce018a * Renamed the 'ScanCore' executable to just 'scancore', moved it into the standard 'tools' directory and changed the agents directory to '/usr/sbin/scancore-agents'.
* Got scancore scanning the agents directory, and properly holding on startup until at least one database is available (instead of exiting), and holding on startup until the local system is configured.
* Created the skeleton of the first scan agent; scan-network.
* Fixed a bug in Storage->check_md5sums() where dynamically loaded modules, loaded after the initial md5sum calcs, would cause the calling daemon to exit (possibly on every invocation).
* Created the scancore.README that will eventually be the main scan agent guide / API document.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-12-28 18:17:59 -04:00
Digimer
f5ae90c941 * Started work on M3 ScanCore!
* Started expanding Alert->register_alert() to actually implement it.
* Improved handling errors in Words->key().
* Started work on Striker's "Anvil!" menu section. Also cleaned up the power handling.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-12-18 15:20:49 -08:00
Digimer
5f77ff5885 * Finished (for now) anvil-manage-firewall. It's been added to anvil-daemon as well.
* Updated Log->entry() to accept 'print => [0|1]' to send a log message to STDOUT (minus prefix) to avoid tools that were repeatedly calling print and Log->entry back to back.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-12-11 02:27:55 -05:00
Digimer
67e8f26bdb * Fixed a bug where anvil-manage-install-target was always refreshing the local RPM repository instead on doing so only once per day.
* Finished getting proper storage management and software RAID support added to plan_partition.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-29 19:55:23 -05:00
Digimer
9cf70f847c * Lots of work done to add software RAID support to kickstart. Still in progress, however.
* Work on anvil-manage-install-target to enable/disable dhcpd. Also to only refresh the RPM repo periodically. Fixed a bug where it always reported that the kickstart files were not updated, even when they were.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-29 04:11:47 -05:00
Digimer
8468215831 * Added logic to tools/anvil-manage-install-target to only update the local RPM repo on a periodic basis.
* Updated tools/anvil-configure-striker to be consistent about naming firewall zones using upper-case.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-13 02:47:43 -05:00
Digimer
7f5ac528ab * Got tools/anvil-manage-install-target to now properly build the install repo source! Installing guests is now working, at a base level. Still need to add Anvil! specific stuff, and firewall support. Also decided to emulate the upstream 'Packages' directory structure and moved all packages in to subdirectories based on the first letter of the package.
* Bumped the default PXE menu timeout to 10 minutes.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-05 03:33:43 -05:00
Digimer
ea65fa08aa * Added generation of kickstart files from a single template and made them more configurable by the user via anvil.conf.
* Made the PXE spash image come from the active skin.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-03 02:55:35 -04:00
Digimer
b815af03df * Created a new RPM (different repo; anvil-striker-extra) for files needed for the Install Target feature but not available in (or reasonably extracted from) RPMs.
* More work on anvil-manage-install-target

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-02 02:06:04 -04:00
Digimer
45f290d5e7 * Updated all System->*_daemon methods to not append '.service' to the daemon parameter. Also make all daemon names variables stored in 'sys::daemon::<foo>' and updated existing calls to these methods to use those variables.
* Got anvil-manage-install-target finished creating config files and enabling daemons needed for PXE. Still untested in function though.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-11-01 03:16:07 -04:00
Digimer
9fe774071e * Started work on making text config files based on templates, started with the tftp 'default' file.
* Got a bit further with tools/anvil-manage-install-target.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-10-26 01:35:54 -04:00
Digimer
521ccb1215 * Updated notes related to URFI PXE booting issues.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-10-19 10:53:46 -04:00
Digimer
d9a305d81e * Made good progress on the PXE server envrionment PoC (reflected in notes, and the various script and pxe files).
* Finished (for now) scripts/plan_partitions and 'default' BIOS-based PXE menu.
* Striker kickstart script is close to done, save for a permission issue running the %pre script still being debugged.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-10-16 04:15:15 -04:00
Digimer
07c3b405ad * Starting work on adding "Install Target" function (will likely rename this, but basic same function as IT in m2).
* Added 'sys::database::failed_connection_log_level' to allow silencing of log messages when a Striker peer database is not available.
* Started updating the .spec for the new release to add supported packages needed for PXE/dhcp/tftpboot.
* Added to repo tftpboot files as pulling them out of the packages and moving them into the right place relative to the modest size of adding them directly to our source wasn't justified.
* Created the still very very early 'tools/anvil-manage-firewall' tool.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-10-10 19:43:23 -04:00
Digimer
e15fd19ee4 * Fixed a bug in anvil-daemon where a stray 'die' from earlier work was left in.
* Fixed a bug where a double-equal in anvil-configure-striker was causing it not to compile and run.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-27 01:54:30 -04:00
Digimer
d3d28d8ec5 * Updated striker's first config page to pre-fill with values (Org name, prefix, sequence and domain name) if they can be devined from the existing system config.
* Updated System->hostname() to return the "pretty" host name as well as the traditional host name.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-26 18:55:52 -04:00
Digimer
bbf194994e * New attempt to solve the resync issue; Created a new method called Database->refresh_timestamp that will update 'sys::database::timestamp', and call it when UPDATE'ing in '->insert_or_update_jobs()'. This should force the 'modified_date' to be unique per update and allow the existing resync approach to work properly. If so, this method will be used later for any instance where a given record can be updated multiple times per run.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-25 02:15:44 -04:00
Digimer
950338da6c * More work on Database->_split_query(), though I may be about to revert as this is proving exceedingly complicated and I may have a simpler solution.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-25 01:43:12 -04:00
Digimer
a8369170b4 This is the start of a major change!
The resync of the databases was originally designed (on m2) with the expextation that any given column would have only one change per 'modified_date' time. That was never a great approach, but it worked in m2 and just bit me on m3. With job processing, for an example, the job_progress will change repeatedly in one pass, all with the same 'modified_date'. So only one record per run would resync. To fix this, the plan is to drop 'history_id' (and the procedure/trigger in pgsql to copy INSERT and UPDATEs to the history schema). The new plan is to use 'change_uuid' with a per-transaction UUID created in Database so that the per-DB 'history_id' is replaced with a per-update/insert UUID in 'change_uuid'. This will become the unique record used to sync databases, instead or 'modified_date'. To keep things consistent, 'modified_date' was renamed to 'change_date' to match 'change_uuid'. This work is very much "in progress" and not finished.

This commit also changes Get->uuid to use UUID::Tiny to create v4 UUIDs instead of making making a system call to 'uuidgen'. This sped up UUID generation by almost 100x.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-23 16:16:08 -04:00
Digimer
40aac1d5f6 * Finished adding the 'sessions' database table and associated code.
* Added a check to all 'Database->insert_or_update_*' methods to check if the passed-in reference UUID was found and return an empty string if not.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-21 13:49:28 -04:00
Digimer
c6e781d80b * Adding database peers (local and bidirectional) now works!
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-09-13 17:08:50 -04:00
Digimer
c88cbf4531 * Got tools/anvil-configure-network writing the first network config file body.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-04-03 01:00:46 -04:00
Digimer
c21b326f1a * Changed all methods to take a 'debug' argument for setting log level on calls.
* Fixed a bug with resync, but others remain as resync is incomplete (at least for network_interfaces).
* Currently, tools/anvil-update-states is broken while working on the above issue.
* Reworked the jobs table and removed the units/anvil-jobs.service unit. Jobs will be invoked and backgrounded in all calls.
* Started adding missing hidden form fields.
* Updated the 'server' OCF resource agent version and metadata.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-03-07 03:11:55 -05:00
Digimer
6f4df4ed22 * Changed 'database::X::ping_before_connect' to 'database::X::ping' and made the value be the actual timeout to wait for pings when trying to connect to a database.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-23 00:58:47 -07:00
Digimer
f52d8196f6 * Migration is now sort of working. There is still an issue to sort out with enabling drbd dual-primary, but server can move is some cases now.
* Changed fence_pacemaker to exit with '1' on generic error as per LINBIT's comments.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-21 02:06:00 -05:00
Digimer
4e5dc9f1c2 * Started work on migration handling.
* Fixed a bug where a stop operation on a server already in shutdown would exit immediately instead of waiting for the server to actually shut off.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-20 02:14:59 -05:00
Digimer
bb4b5b1778 * Got the RA to the point where it identifies the local DRBD devices and backing LVs.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-16 02:09:28 -05:00
Digimer
81534cddbc * Moved ocf:alteeve:server along... It now can properly check and report the server's status on a monitor call.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-13 23:59:07 -05:00
Digimer
636cef0564 * Barring some testing, the fence_pacemaker fence handler is done.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-11 19:32:18 -05:00
Digimer
6405483fea * Added a check to fence_pacemaker that exits with 7 if the target node is already out of the pacemaker cluster.
* Verified that the logic works in a 3-node (Anvil! + DR) cluster.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-11 02:45:56 -05:00
Digimer
26f956e429 * Much more work done on the fence handler. How able to sanity check most of the pacemaker side of things and have the framing done for sanity checking DRBD.
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-08 02:03:36 -05:00
Digimer
806b452d10 Merge branch 'master' of github.com:digimer/m3
Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-07 12:11:21 -05:00
Digimer
ced92139b1 * Added the new (and still very much in progress) 'fence_pacemaker' fence handler for power-fencing via DRBD.
* Updated dev notes.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-02-07 03:36:49 -05:00
Digimer
fe4a1d5a1c * Working on timing for DB connections.
* Created a new tool (that may go away) for monitoring for network changes as quickly and with as few resources as possible.

Signed-off-by: Digimer <digimer@alteeve.ca>
2018-01-17 15:10:07 -06:00
Digimer
1cb42080c3 ** Major Changes **
We've decided to give up on trying to keep ScanCore, AN::Tools and Striker as three separate things. We had originally hoped to make ScanCore easily separatable from the Anvil!, but this was adding increasing complexity to the project and complexity is the enemy of reliability.

In this release, AN::Tools becomes Anvil::Tools, all configuration files move to /etc/anvil and all programs and data files move to /usr/sbin/anvil. Words files are now merged, as are SQL schemas (ScanCore agents will still maintain their own, later). The journald tag has changed from 'an-tools' to 'anvil'.

Other changes;
* Tools.t has been updated to handle existing tests. New methods and parameters still need to have tests added though.
* Added a simple test.pl script used for testing things outside the main program. It will be removed before final release.
* Added the simple 'watch_logs' bash script to more easily tail output.

Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-20 00:19:32 -04:00
Digimer
ca417c7c84 * Added perl-DBD-Pg to the dependency list in notes.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-19 12:17:40 -04:00
Chris Johnson
dbca9cd4df Fixed typo on last two perl dependency packages 2017-10-19 11:47:57 -04:00
Digimer
286b145434 * Added a general purpose 'notes' file.
Signed-off-by: Digimer <digimer@alteeve.ca>
2017-10-19 11:30:07 -04:00