adding buildslave-configure role and dev-buildslave ssh key info

This commit is contained in:
Tim Flink 2014-07-03 13:15:56 +00:00
parent a68eab1ee0
commit 100f0ec463
7 changed files with 91 additions and 1 deletions

View file

@ -13,7 +13,7 @@ buildmaster_db_host: db-qa01.qa.fedoraproject.org
buildmaster_db_name: buildmaster
buildmaster_template: taskotron.master.cfg.j2
buildmaster_endpoint: taskmaster
buildmaster_pubkey: ''
buildslave_ssh_pubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4EOTNfPIvIjCLNRYauVquS2LA8CZvCi6f87TASDZv4moFTv3mrCIdA3ycYLg+r+ODdPDjF9Cjpw1os/8L07XegTt9gAJVIpxzu3ZgQDkSQbx/hlDi+RG4EOIHL8nNJmu27dOVd1tb3k3aOkP5twO4uEq9RygrQBWMZTmOHdS/q8ZVUQG0d1sKv2J8EuBENgICjjIhhYvdvluu3G65jKxMgDbSXjkK6vZpbDbS2d6JI3VeLbVGlyFbHkTu7vH/vzTJZfOYgp0ZbvW9Wo3VSq/ia5qtrLKwRcBkpyCkP6uOQ14zqj4zJd/Hv7qhEcUhC8Jsb7d/Z6b3q5ID0s/9nuHdQ== buildslave@taskotron-dev01.qa.fedoraproject.org'
buildslave_port: 9989
cgit_root_title: "Taskotron Dev Server Git Mirror"
buildmaster_dir: /home/buildmaster/master

View file

@ -13,3 +13,5 @@ slave_user: buildslave
buildmaster: 10.5.124.230
buildslave_port: 9989
tcp_ports: [ "{{ buildslave_port }}" ]
buildslave_private_sshkey_file: dev-buildslave-sshkey/dev_buildslave
buildslave_public_sshkey_file: dev-buildslave-sshkey/dev_buildslave.pub

View file

@ -0,0 +1,30 @@
- name: create slave
command: creates={{ slave_dir }} buildslave create-slave {{ slave_dir }} {{ buildmaster }} buildslave passwd
- name: generate slave config
template: src={{ templates }}/buildslave/buildbot.tac.j2 dest={{ slave_dir }}/buildbot.tac mode=0600 owner={{ slave_user }} group={{ slave_user }}
- name: generate slave info
template: src={{ templates }}/buildslave/{{ item }}.j2 dest={{ slave_dir }}/info/{{ item }} mode=0644 owner={{ slave_user }} group={{ slave_user }}
with_items:
- admin
- host
- name: create slave ssh directory
file: path={{ slave_home }}/.ssh owner={{ slave_user }} group={{ slave_user }} mode=0700 state=directory
- name: install slave ssh private key
copy: src={{ private }}/files/{{ buildslave_private_sshkey_file }} dest={{ slave_home }}/.ssh/id_rsa owner={{ slave_user }} group={{ slave_user }} mode=0600
- name: install slave ssh public key
copy: src={{ private }}/files/{{ buildslave_public_sshkey_file }} dest={{ slave_home }}/.ssh/id_rsa.pub owner={{ slave_user }} group={{ slave_user }} mode=0644
- name: generate buildslave service file
template: src={{ templates }}/buildslave/buildslave.service.j2 dest=/lib/systemd/system/buildslave.service owner=root group=root mode=0744
sudo_user: root
- name: start and enable buildslave service
service: name=buildslave enabled=yes state=started
sudo_user: root

View file

@ -0,0 +1 @@
Taskbot Admin <admin@tirfa.net>

View file

@ -0,0 +1,42 @@
import os
from twisted.application import service
from buildslave.bot import BuildSlave
basedir = r'/home/buildslave/slave'
rotateLength = 10000000
maxRotatedFiles = 10
# if this is a relocatable tac file, get the directory containing the TAC
if basedir == '.':
import os.path
basedir = os.path.abspath(os.path.dirname(__file__))
# note: this line is matched against to check that this is a buildslave
# directory; do not edit it.
application = service.Application('buildslave')
try:
from twisted.python.logfile import LogFile
from twisted.python.log import ILogObserver, FileLogObserver
logfile = LogFile.fromFullPath(os.path.join(basedir, "twistd.log"), rotateLength=rotateLength,
maxRotatedFiles=maxRotatedFiles)
application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
except ImportError:
# probably not yet twisted 8.2.0 and beyond, can't set log yet
pass
buildmaster_host = '{{ buildmaster }}'
port = 9989
slavename = '{{ buildslave_name }}'
passwd = '{{ buildslave_pw }}'
keepalive = 600
usepty = 0
umask = None
maxdelay = 300
s = BuildSlave(buildmaster_host, port, slavename, passwd, basedir,
keepalive, usepty, umask=umask, maxdelay=maxdelay)
s.setServiceParent(application)

View file

@ -0,0 +1,14 @@
[Unit]
Description=Buildslave for taskbot
After=network.target
[Service]
Type=forking
PIDFile=/home/buildslave/slave/twistd.pid
ExecStart=/bin/buildslave start /home/buildslave/slave/
ExecStop=/bin/buildslave stop /home/buildslave/slave/
User=buildslave
Group=buildslave
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1 @@
Buildslave running on {{ inventory_hostname }}