Difference between revisions of "XenServer/XenServer CI/AdminTips"
< XenServer | XenServer CI
John Garbutt (talk | contribs) (→XenServer CI Admin Tips) |
John Garbutt (talk | contribs) |
||
Line 9: | Line 9: | ||
Main box: | Main box: | ||
* 166.78.153.192 | * 166.78.153.192 | ||
+ | * created via jenkins job at Citrix | ||
+ | * ?? BobBall to send johnthetubaguy an example | ||
Services that should be running: | Services that should be running: | ||
Line 49: | Line 51: | ||
==Useful commands== | ==Useful commands== | ||
+ | |||
* osci-view list: Gives current queue, what is running etc. Shouldn't have jobs in here that are 'older' than 2 hours unless they are 'Finished'. | * osci-view list: Gives current queue, what is running etc. Shouldn't have jobs in here that are 'older' than 2 hours unless they are 'Finished'. | ||
* nodepool list: Gives a list of the currently available nodes. Should have some nodes that are 'Ready' or 'Building' | * nodepool list: Gives a list of the currently available nodes. Should have some nodes that are 'Ready' or 'Building' | ||
Line 65: | Line 68: | ||
* citrix-ci: https://github.com/citrix-openstack/openstack-citrix-ci | * citrix-ci: https://github.com/citrix-openstack/openstack-citrix-ci | ||
** Workflow manager | ** Workflow manager | ||
+ | |||
+ | == Node pool == | ||
+ | |||
+ | Currently using master branch of nodepool: | ||
+ | * https://github.com/citrix-openstack/nodepool/commit/5f85541e44184b115cc10515bc8ee65e059d75dd | ||
+ | |||
+ | Configuration is here: | ||
+ | * /etc/nodepool/nodepool.yaml | ||
+ | |||
+ | It is all installed using this script: | ||
+ | * https://github.com/citrix-openstack/install-nodepool/blob/master/inp/osci_installscript.sh | ||
+ | |||
+ | The ssh-keys given to created xenserver boxes are configured in the jenkins job that runs the above script to create the xenserver-ci box. |
Revision as of 11:02, 27 May 2014
Status
XenServer CI Admin Tips
Auth is via ssh-keys, please request access in the XenAPI team meeting, if you want to help.
Main box:
- 166.78.153.192
- created via jenkins job at Citrix
- ?? BobBall to send johnthetubaguy an example
Services that should be running:
- citrix-ci-gerritwatch: Watches the gerrit stream and adds jobs to the queue
- Logs: /var/log/citrix-ci-gerritwatch.log
- (Re)start: (re)start citrix-ci-gerritwatch
- citrix-ci: Progresses jobs through the lifecycle (see below)
- Logs: /var/log/citrix-ci.log
- (Re)start: (re)start citrix-ci
- nodepool: Provisions VMs to use in the tests
- Logs: /var/log/nodepool/nodepool.log, /var/log/nodepool/debug.log
- (Re)start: killall nodepool; rm /var/run/nodepool/nodepool.pid; start nodepool
There are some bin files here:
- osci-check-connection
- checks to node, to xenserver, then logs uploaded to swift from both
- osci-manage
- what citrix-ci service runs
- runs main lifecycle
- can also manually add a job to the queue
- osci-upload
- upload logs from local host directory up to swift
- called from osci-manage (via python not cli)
- osci-watch-gerrit
- what citrix-ci-gerrit-watch runs
- reads gerrit stream and adds jobs to DB
- osci-create-dbschema
- creates job DB
- osci-run-tests
- e.g. osci-run-tests print user host ref
- calls out to host to run tests
- used (via python not cli) by osci-manage
- osci-view
- prints out the job DB in useful ways
To report status:
- osci-view is called and content uploaded to swift
- /src/openstack-citrix-ci/upload-ci-status
Useful commands
- osci-view list: Gives current queue, what is running etc. Shouldn't have jobs in here that are 'older' than 2 hours unless they are 'Finished'.
- nodepool list: Gives a list of the currently available nodes. Should have some nodes that are 'Ready' or 'Building'
- eval `ssh-agent`; ssh-add ~/.ssh/citrix_gerrit; osci-manage -c 12345/1; ssh-agent -k: Queue job 12345, patchset 1
VM lifecycle
- Queued -> Running: citrix-ci job has got a new node from nodepool (nodepool list will show it as 'held')
- Running -> Collecting: Job has finished; citrix-ci has changed state to Collecting - waiting on log collection thread
- Collecting -> Collected: Log collection thread has posted logs to swift and updated job with logs URL
- Collected -> Finished: Citrix-ci has posted to gerrit and the job is now complete
- <anything> -> Obsolete: a new job for the same change (recheck or new patchset) has been added
Code
- http://git.openstack.org/cgit/stackforge/xenapi-os-testing/ (although currently using https://github.com/citrix-openstack/xenapi-os-testing)
- Actual job runner; downloaded by openstack-citrix-ci/osci/tests/test_instructions.py
- citrix-ci: https://github.com/citrix-openstack/openstack-citrix-ci
- Workflow manager
Node pool
Currently using master branch of nodepool:
Configuration is here:
- /etc/nodepool/nodepool.yaml
It is all installed using this script:
The ssh-keys given to created xenserver boxes are configured in the jenkins job that runs the above script to create the xenserver-ci box.