Skip to content

Commit becab7a

Browse files
committed
deployment
1 parent ef4faa4 commit becab7a

31 files changed

+124
-402
lines changed

doc/Deployment.md

Lines changed: 57 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,59 @@
1+
# Releases
2+
3+
```{toctree}
4+
:glob:
5+
:titlesonly:
6+
7+
deployment/Creating-a-release
8+
deployment/Manual-system-tests
9+
```
10+
111
# Deployment
212

3-
- [Deployment Strategy](Deployment-strategy)
4-
- [Creating a Release](Creating-a-release)
5-
- [How to deploy IBEX and EPICS on an instrument control PC](Deployment-on-an-Instrument-Control-PC)
6-
- [Deploy script workflow](Deploy-script-workflow)
7-
- [How to deploy IBEX to training machine](IBEX-Deployment-on-Training-machine)
8-
- [How to release a single IOC to an instrument](Release-Single-IOC)
9-
- [How to migrate an instrument from SECI to IBEX](Migrate-an-Instrument-Control-PC)
10-
- [How to add the instrument to the list of available instruments](Making-an-Instrument-Available-from-the-GUI)
11-
- [Upgrade Java](Upgrade-java)
12-
- [Manual System Tests](Manual-system-tests)
13-
- [Manual System Tests Results](Manual-System-Tests-Results)
14-
- [Installing and upgrading MySQL](Installing-and-Upgrading-MySQL)
15-
- [Disaster Recovery Testing](Disaster-Recovery-Testing)
16-
- [Virtual System Creation](Virtual-System-Creation)
17-
- [Autostart IBEX on Computer Restart](Autostart-IBEX-on-Computer-Restart)
18-
- [Quick Deploy](Quick-Deploy) (e.g. for Demo and R78)
19-
- [Upgrade ISISICP](Upgrade-ISISICP)
20-
- [Modifying Plugins on a Deployed Client](Modifying-Plugins-on-a-Deployed-Client)
21-
- [Mount or create IBEX VHDs](Mount-or-create-IBEX-VHDs)
22-
- [NPort Install](NPort-install)
23-
- [Instrument definition (like mapped drives) "Instrument Machine standards.doc"](http://www.facilities.rl.ac.uk/isis/computing/instruments/Instrument%20Documents/Forms/AllItems.aspx)
24-
- [Updating Instrument Machines](Updating-Instrument-Machines)
25-
- [Reviewing Deployment Tickets](Reviewing-Deploy-Tickets)
13+
## IBEX
14+
15+
```{toctree}
16+
:glob:
17+
:titlesonly:
18+
19+
deployment/Updating-Instrument-Machines
20+
deployment/Deployment-on-an-Instrument-Control-PC
21+
deployment/IBEX-Deployment-on-Training-machine
22+
deployment/Autostart-IBEX-on-Computer-Restart
23+
deployment/Making-an-Instrument-Available-from-the-GUI
24+
deployment/Reviewing-Deploy-Tickets
25+
deployment/Deploy-script-workflow
26+
```
27+
28+
## Supporting software
29+
30+
```{toctree}
31+
:glob:
32+
:titlesonly:
33+
34+
deployment/Installing-and-Upgrading-MySQL
35+
deployment/NPort-install
36+
deployment/Upgrade-Java
37+
deployment/Upgrade-ISISICP
38+
```
39+
40+
# Patching
41+
42+
```{toctree}
43+
:glob:
44+
:titlesonly:
45+
46+
deployment/Modifying-Code-on-an-instrument
47+
deployment/Modifying-Device-on-an-Instrument
48+
deployment/Release-Single-IOC
49+
deployment/Modifying-Plugins-on-a-Deployed-Client
50+
```
51+
52+
# VHD Build & Deployments
53+
54+
```{toctree}
55+
:glob:
56+
:titlesonly:
57+
58+
deployment/Mount-or-create-IBEX-VHDs
59+
```

doc/Processes.md

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
1-
# Processes
2-
3-
Various Processes or tasks and info into how they should work. Remember rules can be bent or broken but think about why you are doing that.
4-
5-
## Patching
6-
7-
```{toctree}
8-
:glob:
9-
:titlesonly:
10-
11-
processes/Modifying-Code-on-an-instrument
12-
processes/Modifying-Device-on-an-Instrument
13-
```
14-
15-
## Development
1+
# Development Processes
162

173
```{toctree}
184
:glob:
@@ -25,6 +11,8 @@ processes/Dependency-Updates
2511
processes/External-Contributions
2612
```
2713

14+
# Meetings
15+
2816
## Internal meetings
2917

3018
```{toctree}
@@ -49,7 +37,7 @@ processes/Regular-Demos-of-IBEX-to-Scientists
4937
processes/Training-Instrument-Scientists-in-IBEX
5038
```
5139

52-
## Project management
40+
# Project Management
5341

5442
```{toctree}
5543
:glob:
@@ -61,7 +49,7 @@ processes/Sprint-Burn-down-Chart
6149
processes/Prioritisation-of-Tickets
6250
```
6351

64-
## Admin
52+
# Admin
6553

6654
```{toctree}
6755
:glob:

doc/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
html_theme_options = {
6565
"logo_only": False,
6666
"style_nav_header_background": "#343131",
67+
'body_max_width': None,
6768
}
6869
html_favicon = "favicon.svg"
6970

doc/uncategorised/Autostart-IBEX-on-Computer-Restart.md renamed to doc/deployment/Autostart-IBEX-on-Computer-Restart.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Autostart IBEX on Computer Restart](Autostart-IBEX-on-Computer-Restart)
1+
# Auto-start IBEX on Computer Restart
22

3-
# Windows Server 2012 R2
3+
## Windows Server 2012 R2
44

55
**This appears to work but doesn't because the user does not have interactive mode permissions. There is a ticket to sort this out**
66

doc/uncategorised/Creating-a-release.md renamed to doc/deployment/Creating-a-release.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > Creating a release
1+
# Creating a release
22

33
## Understanding Java Licensing
44
Make sure you [understand how Java is licensed](Understanding-Java-Licensing), so that we do not inadvertently make ISIS liable for licensing fees.
@@ -147,6 +147,3 @@ The is a release when a change needs to be made between standard releases; i.e.
147147
1. cd to EPICS
148148
1. checkout release branch and pull
149149
1. update submodule reference, commit and push.
150-
151-
### Note: Minor upgrades to v11.0.0.
152-
**WARNING:** If branching off the `v11.0.0` to make a release, you will need to re-add changes made in this [commit](https://github.com/ISISComputingGroup/EPICS-upgrade/commit/9b92ba915ca7cfdd1f711aff4945fe842972ee11). Otherwise, you will have problems with an incorrect number in the instrument's config area when deploying.

doc/uncategorised/Deploy-script-workflow.md renamed to doc/deployment/Deploy-script-workflow.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Deploy script workflow](Deploy-script-workflow)
2-
3-
## Deploy script location
1+
# Deploy script workflow
42

53
Scripts needed are in: `\\isis\shares\ISIS_Experiment_Controls_Public\ibex_utils\installation_and_upgrade`
64
some instruments it might want instead if not default on cclrc.ac.uk
75
`\\isis.cclrc.ac.uk\shares\ISIS_Experiment_Controls_Public\ibex_utils\installation_and_upgrade`
86

9-
## Steps
10-
11-
### Pre-script
7+
## Pre-script
128
1. Use RealVNC Viewer to ensure that the instrument is not currently in use.
139
1. Remote desktop into the instrument
1410
1. Open git-bash
@@ -18,7 +14,7 @@ some instruments it might want instead if not default on cclrc.ac.uk
1814
4. Ask senior team member if any of the deleted/new/modified files are of note and record the ones that are, to deal with later.
1915
1. Run deploy script in the tools' directory, you can double click on `instrument_deploy.bat` but it is safer to create a command window and then run the command from there, if the process were to crash you see the last message in the window. The install does now write a log file so this may not be necessary, but i usually still do it this way in case.
2016

21-
### During script
17+
## During script
2218

2319
| Config step (in order of script) | Instruction (y/n) | Comment |
2420
| ----------- | ----------------- | ------- |

doc/uncategorised/Deployment-on-an-Instrument-Control-PC.md renamed to doc/deployment/Deployment-on-an-Instrument-Control-PC.md

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Deployment on an Instrument Control PC](Deployment-on-an-Instrument-Control-PC)
1+
# Deploy to an instrument machine
22

33
This document describes the steps necessary to install/upgrade IBEX on an Instrument control PC. Be sure to login as `spudulike` when deploying on instruments instead of `gamekeeper`.
44

5-
# Steps using the install/deployment script
65
## Preparatory Steps for Client and Server
76

87
- Inform the instrument scientist that you are going to upgrade the instrument in 5 minutes so that they are not surprised when you remote desktop to the instrument, include a link to the release notes of the latest release in this email. Wait 5 minutes.
98
- Visit each instrument on which code will be released and check for changes which have been made which are not summarised on the [IBEX wiki](https://github.com/ISISComputingGroup/IBEX/wiki#tocInstrumentInfo). Do this by running `git status` in the EPICs directory and looking at the diff and comparing with those changes.
109
- Make sure that the public share has the most recent version of `ibex_utils` from Git (i.e. do git pull).
1110

12-
### Notes on network share access
11+
## Notes on network share access
1312
The install will need to access both `<public share>\ibex_utils` (where the install script is located) and `kits$` (where the ibex release and a genie python instance is kept). As we will be updating python, we cannot use the locally installed python for the deploy.
1413

1514
On an instrument NDX computer the D: and O: drives will be mapped to the instrument archive and have sufficient access rights, however they can sometimes become disconnected and then things don't work. So before starting look in windows explorer and if D: and/or O: are showing as Disconnected click on them to reconnect.
1615

1716
If you do not have either a D: or O: network drive, then you will need to specify network credentials to map the drive via the `net use` command.
1817

19-
### Upgrading IBEX to the latest version
18+
## Upgrading IBEX to the latest version
2019
1. If an instrument, check D: network drive status as per above _Notes on network share access_
2120
1. Ensure the instrument is running and in a setup state
2221
1. Take screenshots of blocks, motors, running VIs, etc. to allow later comparison
@@ -30,7 +29,7 @@ If you do not have either a D: or O: network drive, then you will need to specif
3029
- Do not remove any SECI icons from the task list if this is not the first time install
3130
1. Compare screenshots taken earlier to current state
3231

33-
### install IBEX for the first time
32+
## Install IBEX for the first time
3433
_Note this is unlikely to happen now we've migrated most instruments, and SECI instruments should have a copy of IBEX at the least._
3534
<details>
3635
<summary> Click to expand</summary>
@@ -44,7 +43,3 @@ _Note this is unlikely to happen now we've migrated most instruments, and SECI i
4443
- If needed, shutdown IBEX and [upgrade the ISISICP](Upgrade-ISISICP). Remember to run the journal parser installation (Step 8 of upgrading ICP) - this can take some time.
4544
- After the script has successfully finished and the IBEX server has been started, run `instrument_test.bat` in the same folder and follow the instructions.
4645
</details>
47-
48-
# Manual deploy instructions
49-
50-
Moved to https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/OLD-Manual-deployment-instructions-(not-for-normal-use)

doc/uncategorised/IBEX-Deployment-on-Training-machine.md renamed to doc/deployment/IBEX-Deployment-on-Training-machine.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > - [How to deploy IBEX to training machine](IBEX-Deployment-on-Training-machine)
1+
# Deploy to a training machine
22

33
Training machines have there own deployment script. It is similar but not the same as the usual instrument upgrade/deployment. It removes all previous traces of IBEX on the system and then installs it as if it was a clean machine. It also installs some training material and a training config.
44

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# MySQL
2+
3+
## Installation
4+
5+
Follow the steps set out in [upgrade mysql to version 8.0](https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/Upgrading-to-MySQL-8), skipping the step to uninstall MySQL 5.7 if this is a first time install as opposed to an upgrade.
6+
7+
## Troubleshooting
8+
9+
### The installer is complaining that it needs a new version of the .NET framework
10+
11+
This may just be an issue with the installer rather than with MySQL itself. There is a workaround that lets you avoid having to install a new .NET framework:
12+
1. Use an installer for an older version of MySQL
13+
1. Once complete, run the MySQL Community Installer from the start menu
14+
1. Click on the "Catalog..." button. Follow the prompts to download the latest MySQL product catalog.
15+
1. Once that is done, click on the "Upgrade" button on the MySQL installer home page. Here you can manually select the version you would like to install.
16+
17+
```

doc/uncategorised/Making-an-Instrument-Available-from-the-GUI.md renamed to doc/deployment/Making-an-Instrument-Available-from-the-GUI.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Making an Instrument Available from the GUI](Making-an-Instrument-Available-from-the-GUI)
1+
# Adding an instrument to the instrument list
22

33
The new instrument must be added to the list of available instruments so that users can control it from the Ibex GUI. The list of available instruments is stored in a PV called `CS:INSTLIST`, which runs on the beam status IOC, and is therefore independent of any specific instrument.
44

@@ -26,7 +26,7 @@ To add a new instrument to this list proceed as follows:
2626
1. Verify that all the instruments are picked up by the GUI (e.g. there are no parsing errors): `IBEX -> Switch Instrument` and that they have the correct alarm server and configuration loaded.
2727
1. Verify that the web dashboard for the instruments still works
2828

29-
# Restricting the GUI to switching to a reduced set of instruments
29+
## Restricting the GUI to switching to a reduced set of instruments
3030
On the IDaaS machines we need to be able to limit the instruments that a user can switch to in the GUI, to protect the data of other users. This is performed by adding a whitelist to the instrument preferences supplier. This needs to be applied for each VM group that needs to be restricted.
3131

3232
This shouldn't get overwritten during the RPM deploy as the preferences folder is created by the GUI when it first starts, and isn't in the build.

doc/uncategorised/testing/Manual-System-Tests.md renamed to doc/deployment/Manual-System-Tests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > Manual system tests
1+
# Manual system tests
22

33
Manual system tests should be performed as part of the release cycle and should be performed once a branch has been created. See [Creating-a-release](Creating-a-release)
44

doc/uncategorised/Modifying-Plugins-on-a-Deployed-Client.md renamed to doc/deployment/Modifying-Plugins-on-a-Deployed-Client.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
> [Wiki](Home) > [Deployment](Deployment)
1+
# Patching a deployed client
22

33
If you need to modify a plugin on an IBEX client running on an instrument, such as OPIs, you need to go to
44

55
```<installed client dir>/plugins/<whichever plugin you're interested in>```.
66

7-
# Live editing opis / non-compiled code
7+
## Live editing opis / non-compiled code
88

99
These can be edited on the fly. If you edit a `.opi` file, the change will be seen the next time the opi is opened in IBEX. However, if you edit `opi_info.xml` (for example, to add an entirely new opi) you will need to relaunch the client as this file is only read once at startup.
1010

11-
# Live editing "compiled" code
11+
## Live editing "compiled" code
1212

1313
Plugins can be built as either folders containing `.class` files, or `.jar` files. If you need to edit the contents of a `.jar`:
1414
- Rename the plugin from `_.jar` to `_.zip`

doc/uncategorised/Mount-or-create-IBEX-VHDs.md renamed to doc/deployment/Mount-or-create-IBEX-VHDs.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Mount or create IBEX VHDs](Mount-or-create-IBEX-VHDs)
2-
3-
# Deployment
1+
# Mount or create IBEX VHDs
42

53
The new architecture for deployment is to deploy onto VHDs which will be copied to the desired places and linked in; this was a result of [discussions of making deployment quicker](Plan-how-to-deploy-automatically-on-30-instruments).
64

7-
## Part of the system
5+
## Parts of the system
6+
87
### System VHD
98

109
There needs to be a system VHD, this has been created by Chris and will be detailed *CHRIS TODO*. This contains windows and user level programs (probably including labview).
@@ -26,15 +25,15 @@ These contain part of the system which change often. We are undecided what to do
2625

2726
For the test system I have gone with the first approach because it was easy. I like the second approach better.
2827

29-
# VHD Creation
28+
## VHD Creation
3029

31-
## Create empty VHDs
30+
### Create empty VHDs
3231

3332
1. Copy the three empty vhdx files (`empty_apps.vhdx`, `empty_var.vhdx`,`empty_settings.vhdx`) to a local disk (from CompGroup\chris) and rename to
3433
`apps.vhdx`, `var.vhdx` and `settings.vhdx`.
3534
2. These are pre-configured to be 30GB each.
3635

37-
## Mount a VHD
36+
### Mount a VHD
3837

3938
1. Open a command prompt as administrator
4039
1. `diskmgmt.msc`
@@ -45,15 +44,14 @@ For the test system I have gone with the first approach because it was easy. I l
4544
1. Mount `Settings.vhdx` to `C:\Instrument\Settings\config` as above
4645
1. Mount `Var.vhdx` to `C:\Instrument\var` as above
4746

48-
## Dismounting VHD
47+
### Dismounting VHD
4948

5049
1. Close the VHD and copy back
5150
1. Right click on drive on left at the bottom
5251
1. Detach VHD
5352
1. Copy file back to the source
5453

55-
# VHD Creation Jenkins Job
56-
##
54+
## VHD Creation Jenkins Job
5755

5856
There is an [automated job in jenkins](http://epics-jenkins.isis.rl.ac.uk/job/Create_VHD/) which builds VHDs from the latest IBEX server/client/python versions.
5957

@@ -87,7 +85,7 @@ Once filled with IBEX files, the VHDs are copied to:
8785
\\isis\inst$\Kits$\CompGroup\ICP\VHDS
8886
```
8987

90-
# Upgrade IBEX Version on a VM By Copying VHD
88+
## Upgrade IBEX Version on a VM By Copying VHD
9189

9290
- The VM set up, running an older version of IBEX, has been located within Hyper-V manager.
9391
- If you wish, a 'Checkpoint' (Right Click -> Checkpoint) can be capture of the current system to allow a way to restore the VM to a functioning state, if required.

doc/uncategorised/NPort-install.md renamed to doc/deployment/NPort-install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [NPort Install](NPort-install)
1+
# Moxa NPort
22

33
To install/upgrade NPort driver:
44

doc/uncategorised/Release-Single-IOC.md renamed to doc/deployment/Release-Single-IOC.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [How to release a single IOC to an instrument](Release-Single-IOC)
1+
# Release a single IOC
22

33
We may want to release a single IOC to an instrument but not release a whole build. This is the procedure to do this:
44

doc/uncategorised/Reviewing-Deploy-Tickets.md renamed to doc/deployment/Reviewing-Deploy-Tickets.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
### Once a deploy has been finished and the ticket requires a review the following tasks should be done to review the ticket:
1+
# Reviewing deploy tickets
2+
3+
Once a deploy has been finished and the ticket requires a review the following tasks should be done to review the ticket:
24

35
- Connect to the machines deployed to and check the current versions of the GUI and server. (In the gui select about, the GUI and Server version numbers should be listed).
46
- Check that any hotfixes have appropriate tickets.

doc/uncategorised/Updating-Instrument-Machines.md renamed to doc/deployment/Updating-Instrument-Machines.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
> [Wiki](Home) > [Deployment](Deployment) > [Updating Instrument Machines](Updating-Instrument-Machines)
1+
# Updating an instrument machine (email templates)
22

33
It is important to remember when making any changes to instruments (e.g. installing new IBEX versions, cleaning disk space etc) that they are in (potentially) constant use by the instrument scientists and so they must be properly informed. Below is a template of what to send to scientists, this should be sent from the Experiment Controls email account.
44

55
If only a subset of instruments are being modified lookup the instrument scientists for these instruments [here](https://www.isis.stfc.ac.uk/Pages/Instrument-Scientists.aspx) and email only those affected. If most instruments are going to be modified then email the ISIS Instrument Scientists + Others.
66

7-
## A New Release
7+
## New Release
88

99
For a new release of IBEX the following should be sent as soon as possible, at least a week (ideally 2 weeks) before the deployment date:
1010

@@ -23,7 +23,7 @@ Thanks,
2323
ISIS Experiment Controls
2424
```
2525

26-
## A Hot-fix
26+
## Hot-fix
2727

2828
In this context a hot fix refers to any modification of an instrument machine that needs to be done at somewhat short notice e.g.:
2929
* Patching a critical bug in some code

0 commit comments

Comments
 (0)