DevTech101

DevTech101
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 1.00 out of 5)
Loading...

Creating An Oracle Solaris DevOps Like Environment, Updated To ZFS Local Replication – Version-09

Just pushed a minor update Version 0.9 of the Solaris DevOps Manager, full details plus code are available on my Github repository.

I am also excited to announce a new initiative. we are in middle of replacing/migrating the Devops Manager Python script with a new front-end(Angular) / back-end(NodeJS + Mongo).

I hope to publish preliminary code in the upcoming weeks on Github, still plenty of work to get to a full migration with all features, but basic functionality is almost done.

Below are some screenshots – prototype of the new Web-UI.
Login.

Navigation.

Zone(VM) / Jira Administration.

Note: Since we are moving to the new front/back-end, this version will most likely be the last major version released(besides miner patches/fixes, etc.). most future work will be on the new front/back-end.

Version 0.9 – Whats new
One of the major changes in the new version version 0.9, is. the new version replaces the use of rsync with ZFS local replication, which in some of our use cases 3x-10x faster.
the script should continue to function the the same with the update to ZFS local replication, the updates are mostly under the covers.

The use of ZFS local replication required a set of 10 ZFSSA operations(REST calls), quite a complex configuration, but is a much safer and efficient process.

I hope to create a separate post outlining the 10 steps required to use ZFS local replication with an example.

There are a number of miner enhancements, bug fixes and changes, some of them outlined below.

To set or update the latest DB or APP version.
Example: To update the DB version you run.

# DB
devops_manager.py -n -u elik -p -t db -vl 6
Please enter elik's LDAP password :
Note: you are accessing this application as a: superAdmin

ERROR: New LATEST_DB version is the same as current.. exiting.

# APP
devops_manager.py -n -u elik -p -t app -vl 2
...

Full new help output is below..

devops_manager.py -h                      
usage: devops_manager.py [-h] [-e [{test,dev,stage}]] -u USER [-p [PASSWORD]]
                         [-t [{app,db}]] [-v [DBVERSION]]
                         [-vl [DBLASTVERSION]]
                         [-s | -d | -r {app,db} | -fr [FULLROTATE]]
                         [-U USERID | -a [ALL]]
                         [-i  | -l [{sum,det,listZones}] | -n ]

Create VM(zone) with associated /apps1 clone

optional arguments:
  -h, --help            show this help message and exit
  -e [{test,dev,stage}], --env [{test,dev,stage}]
                        select environment dev, test, stage(default is dev)
  -u USER, --user USER  create zone with give login credentials.
  -p [PASSWORD], --password [PASSWORD]
                        password for give login credentials.
  -t [{app,db}], --appType [{app,db}]
                        select zone/VM type. app or db(default is app)
  -v [DBVERSION], --dbVersion [DBVERSION]
                        create / rotate zone using given db version(default is
                        db_version in versions.ini, managed by -n flag).
  -vl [DBLASTVERSION], --dbLastVersion [DBLASTVERSION]
                        create / rotate zone using given db version(default is
                        latest_db_version in versions.ini, managed by -nl
                        flag).
  -s, --imgStat         returns VM(zone) live information, e.g. Global Zone,
                        IP, Port, File System, details.
  -d, --delete          delete VM(zone) with associated snap(s)
  -r {app,db}, --rotateImg {app,db}
                        rotate / sync update /apps1. for informix DB: refresh
                        to latest DB copy(/ifxsrv).
  -fr [FULLROTATE], --fullRotate [FULLROTATE]
                        rotate update /apps1, informix DB, refresh all to the
                        default copy (unless otherwise noted with -v).
  -U USERID, --userID USERID
                        returns zones created by given user ID.
  -a [ALL], --all [ALL]
                        returns zones created by all users.
  -i [], --jiraid []    associated Jira ID
  -l [{sum,det,listZones}], --listZones [{sum,det,listZones}]
                        list all active zones, options are summary or
                        details(sum, det)
  -n [], --setDBVers []
                        Updated App or DB version default version

Below are additional updates implemented.

  1. Added/Enhanced: Migrate APP and DB to use ZFS local replication for new weekly versions (this improved timing down to about 60 seconds for db).
  2. Enhanced: Migrate VM zones to use snap/clone from any APP and DB version(s)
  3. New: New (-fr) Refresh option, to fully refresh APP and DB
  4. Update: (-r [app|db]) to use snaps/clones only (no rsync with long timing).
  5. Fixed: left over (better clean-up) connection/disconnect can cause hangs hang bug
  6. …. As usual, bug fixes as well as some new bugs…
  7. Added: Add a new DB active field, this will provide the DBA to which DB’s instance(s) to update schema.
  8. Added: to update new zone data like user/port, db, etc to the new Web UI using Mongodb with a rest call (disabled by default).

For additional details please check out the git repository here.

For a batter explanation you can check out Part 1 and Part 2 on how Creating A DevOps Like Environment In Oracle Solaris or Update to Version 0.8.

You might also like – Articles related to Oracle Solaris 11.4/Solaris 12.

Like what you’re reading? please provide feedback, any feedback is appreciated.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
%d bloggers like this: