Single source of documentation for the University of Alberta Libraries developers common tools and practices
Version control is important to our operation
Github https://github.com/ualbertalib
Ops managed Github https://code.library.ualberta.ca/gitweb/ -- requires Network login / Windows credentials
The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure network. [The Secure Shell (SSH) Protocol Architecture]
The recommended way to authenticate and communicate over ssh is through public/private key pairs. You share your public key with a server and it is stored in .ssh/authorized_keys. Keep your private key secret and on your desktop machine (in your ~/.ssh/ directory).
These keys can be created with Linux command-line tools. In a Windows environment, they can be created using the equivalent tools in [Cygwin]. If you have already created a key pair with PuttyGen and shared it with the sysadmins, you can convert it to the necessary OpenSSH-style keys by following these instructions.
To create your keys:
ssh-keygen -t rsa
They are located
ls ~/.ssh
id_rsa id_rsa.pub
To use these as credentials:
share your public key (id_rsa.pub) with your friendly neighborhood systems administrator
before attempting to login for the first time in a session, you must start the ssh agent and add your key (hint add this to your bash profile):
eval `ssh-agent -s`
ssh-add
to see which keys are currently loaded
ssh-add -l
In Windows you can [use Pageant] to load your key for use by Putty.
DevOps means different things to different people. To us it means Developers and Operations working together (Dev+Ops=DevOps) towards the same goal of putting quality applications in production as efficiently and painlessly as possible.
Once an application is 'working' it is deployed in dev, test, and prod environments. This facilitates the hand off between the Developer and Operations, by giving the Developer a production-like environment to build in, a test environment for developers and Operations to collaborate and practice on, and a production environment that is a known quantity to Operations because it's been proven.
When a bug or feature is identified which requires a change.