From dd3d0d6e7e1a5ac029128289eb7cd7c7b2e8387f Mon Sep 17 00:00:00 2001 From: Andrew Schoen Date: Mon, 4 May 2015 10:43:23 -0500 Subject: [PATCH] wip; create testnode specific cobbler things that setup the teuthology_user when the node is a testnode Signed-off-by: Andrew Schoen --- roles/cobbler/defaults/main.yml | 3 +++ roles/cobbler/tasks/upload_templates.yml | 16 +++++++++++++++ .../templates/kickstarts/cephlab_rhel.ks | 2 ++ .../kickstarts/cephlab_rhel_testnode.ks | 4 ++++ .../kickstarts/cephlab_trusty.preseed | 2 +- .../cephlab_trusty_testnode.preseed | 4 ++++ .../templates/scripts/cephlab_preseed_late | 2 ++ .../scripts/cephlab_preseed_late_testnode | 4 ++++ roles/cobbler/templates/snippets/cephlab_user | 3 +++ .../templates/snippets/cephlab_user_testnode | 20 +++++++++++++++++++ 10 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 roles/cobbler/templates/kickstarts/cephlab_rhel_testnode.ks create mode 100755 roles/cobbler/templates/kickstarts/cephlab_trusty_testnode.preseed create mode 100644 roles/cobbler/templates/scripts/cephlab_preseed_late_testnode create mode 100644 roles/cobbler/templates/snippets/cephlab_user_testnode diff --git a/roles/cobbler/defaults/main.yml b/roles/cobbler/defaults/main.yml index e60d8325..5df69e22 100644 --- a/roles/cobbler/defaults/main.yml +++ b/roles/cobbler/defaults/main.yml @@ -1,13 +1,16 @@ --- kickstarts: - cephlab_trusty.preseed + - cephlab_trusty_testnode.preseed - cephlab_rhel.ks + - cephlab_rhel_testnode.ks snippets: - cephlab_user - cephlab_hostname - cephlab_apt-mirror_hack - cephlab_packages_rhel + - cephlab_user_testnode scripts: - cephlab_preseed_late diff --git a/roles/cobbler/tasks/upload_templates.yml b/roles/cobbler/tasks/upload_templates.yml index 66a83f06..87e1b5f7 100644 --- a/roles/cobbler/tasks/upload_templates.yml +++ b/roles/cobbler/tasks/upload_templates.yml @@ -1,4 +1,20 @@ --- +- name: Get keys for the teuthology_user. + uri: + # TODO: make a var + url: "https://raw.github.com/ceph/keys/autogenerated/ssh/@all.pub" + return_content: yes + register: _teuthology_user_keys + tags: + - always + +- name: Create the teuthology_user_keys var. + set_fact: + teuthology_user_keys: "{{ _teuthology_user_keys.content }}" + when: _teuthology_user_keys.content is defined + tags: + - always + - name: Upload kickstarts and preseeds. template: src: "kickstarts/{{ item }}" diff --git a/roles/cobbler/templates/kickstarts/cephlab_rhel.ks b/roles/cobbler/templates/kickstarts/cephlab_rhel.ks index 587cf5bf..9c0b6925 100644 --- a/roles/cobbler/templates/kickstarts/cephlab_rhel.ks +++ b/roles/cobbler/templates/kickstarts/cephlab_rhel.ks @@ -75,7 +75,9 @@ $SNIPPET('cobbler_register') $SNIPPET('post_anamon') # Start final steps $SNIPPET('cephlab_hostname') +{% block user_setup %} $SNIPPET('cephlab_user') +{% endblock %} $SNIPPET('cephlab_apt-mirror_hack') $SNIPPET('kickstart_done') # End final steps diff --git a/roles/cobbler/templates/kickstarts/cephlab_rhel_testnode.ks b/roles/cobbler/templates/kickstarts/cephlab_rhel_testnode.ks new file mode 100644 index 00000000..32924cb9 --- /dev/null +++ b/roles/cobbler/templates/kickstarts/cephlab_rhel_testnode.ks @@ -0,0 +1,4 @@ +{% extends 'cephlab_rhel.ks' %} +{% block user_setup %} +$SNIPPET('cephlab_user_testnode') +{% endblock %} diff --git a/roles/cobbler/templates/kickstarts/cephlab_trusty.preseed b/roles/cobbler/templates/kickstarts/cephlab_trusty.preseed index bc17a6aa..5c7647ce 100755 --- a/roles/cobbler/templates/kickstarts/cephlab_trusty.preseed +++ b/roles/cobbler/templates/kickstarts/cephlab_trusty.preseed @@ -109,6 +109,6 @@ d-i finish-install/reboot_in_progress note # It is passed to the cobbler xmlrpc generate_scripts function where it's rendered. # This means that snippets or other templating features can be used. d-i preseed/late_command string \ -in-target wget http://$http_server/cblr/svc/op/script/system/$system_name/?script=cephlab_preseed_late -O /tmp/postinst.sh; \ +in-target wget http://$http_server/cblr/svc/op/script/system/$system_name/?script={% block late_command_script_name %}cephlab_preseed_late{% endblock%} -O /tmp/postinst.sh; \ in-target /bin/chmod 755 /tmp/postinst.sh; \ in-target /tmp/postinst.sh; diff --git a/roles/cobbler/templates/kickstarts/cephlab_trusty_testnode.preseed b/roles/cobbler/templates/kickstarts/cephlab_trusty_testnode.preseed new file mode 100755 index 00000000..cc328771 --- /dev/null +++ b/roles/cobbler/templates/kickstarts/cephlab_trusty_testnode.preseed @@ -0,0 +1,4 @@ +{% extends 'cephlab_trusty.preseed' %} +{% block late_command_script_name %} +cephlab_preseed_late_testnode +{% endblock %} diff --git a/roles/cobbler/templates/scripts/cephlab_preseed_late b/roles/cobbler/templates/scripts/cephlab_preseed_late index 2ab9eea4..8d3190ab 100644 --- a/roles/cobbler/templates/scripts/cephlab_preseed_late +++ b/roles/cobbler/templates/scripts/cephlab_preseed_late @@ -7,7 +7,9 @@ $SNIPPET('post_run_deb') $SNIPPET('download_config_files') # custom $SNIPPET('cephlab_hostname') +{% block user_setup %} $SNIPPET('cephlab_user') +{% endblock %} $SNIPPET('cephlab_apt-mirror_hack') # end custom $SNIPPET('kickstart_done') diff --git a/roles/cobbler/templates/scripts/cephlab_preseed_late_testnode b/roles/cobbler/templates/scripts/cephlab_preseed_late_testnode new file mode 100644 index 00000000..b107c0f3 --- /dev/null +++ b/roles/cobbler/templates/scripts/cephlab_preseed_late_testnode @@ -0,0 +1,4 @@ +{% extends 'cephlab_preseed_late' %} +{% block user_setup %} +$SNIPPET('cephlab_user_testnode') +{% endblock %} diff --git a/roles/cobbler/templates/snippets/cephlab_user b/roles/cobbler/templates/snippets/cephlab_user index d85ad82a..2da80112 100644 --- a/roles/cobbler/templates/snippets/cephlab_user +++ b/roles/cobbler/templates/snippets/cephlab_user @@ -24,4 +24,7 @@ EOF chown $user.$user $auth_keys chmod 644 $auth_keys chown -Rf $user:$user /home/$user + +{% block extra_users %}{% endblock %} + curl "http://$http_server:$http_port/cblr/svc/op/nopxe/system/$system_name" -o /dev/null diff --git a/roles/cobbler/templates/snippets/cephlab_user_testnode b/roles/cobbler/templates/snippets/cephlab_user_testnode new file mode 100644 index 00000000..a7396c0c --- /dev/null +++ b/roles/cobbler/templates/snippets/cephlab_user_testnode @@ -0,0 +1,20 @@ +{% extends "cephlab_user" %} + +{% block extra_users %} + +#set $t_user = '{{ teuthology_user }}' +#set $t_home = '/home/' + $t_user +#set $t_auth_keys = $t_home + '/.ssh/authorized_keys' + +useradd -G sudo $t_user +passwd -d $t_user + +cat >> $t_auth_keys << EOF +{{ teuthology_user_keys }} +EOF + +chown $t_user.$t_user $t_auth_keys +chmod 644 $t_auth_keys +chown -Rf $t_user:$t_user /home/$t_user + +{% endblock %} -- 2.47.3