Skip to content
Snippets Groups Projects
Commit a5e206a5 authored by nimrod's avatar nimrod
Browse files

- Few cleanups, correct tests.

parent 5f2dedc5
No related branches found
No related tags found
No related merge requests found
...@@ -9,3 +9,5 @@ __pycache__ ...@@ -9,3 +9,5 @@ __pycache__
.vagrant/ .vagrant/
*.log *.log
*.retry *.retry
tests/files/id_rsa
tests/files/id_rsa.pub
[submodule ".molecule/roles/openbsd-bootstrap"]
path = .molecule/roles/openbsd-bootstrap
url = https://www.shore.co.il/git/ansible-role-openbsd-bootstrap
openbsd-bootstrap @ 87b397b1
Subproject commit 87b397b1f5abe8cc7a89cb922c4c8d7df8898204
--- ---
# tasks file for ansible-role-gitreceive # tasks file for ansible-role-gitreceive
- name: Assertions - name: Assertions
assert: assert:
that: that:
- ansible_os_family in ['Debian', 'OpenBSD'] - ansible_os_family in ['Debian', 'OpenBSD']
- gitreceive_public_keys is iterable
- name: APT install prequisites - name: APT install prequisites
when: ansible_pkg_mgr == 'apt' when: ansible_pkg_mgr == 'apt'
...@@ -46,13 +46,15 @@ ...@@ -46,13 +46,15 @@
- name: Install - name: Install
when: gitreceive_fetch.changed when: gitreceive_fetch.changed
command: /usr/bin/make tags: ['skip_ansible_lint']
command: make
args: args:
chdir: /root/gitreceive chdir: /root/gitreceive
- name: Init - name: Init
tags: ['skip_ansible_lint']
when: gitreceive_fetch.changed when: gitreceive_fetch.changed
command: /usr/local/bin/gitreceive init command: gitreceive init
- name: Add public keys - name: Add public keys
with_items: '{{ gitreceive_public_keys }}' with_items: '{{ gitreceive_public_keys }}'
...@@ -64,8 +66,8 @@ ...@@ -64,8 +66,8 @@
- name: Copy reciever script - name: Copy reciever script
when: gitreceive_receiver_script is defined when: gitreceive_receiver_script is defined
template: copy:
src: gitreceive_receiver.j2 content: '{{ gitreceive_receiver_script }}'
dest: /home/git/receiver dest: /home/git/receiver
owner: git owner: git
group: git group: git
......
{{ gitreceive_receiver_script }}
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAoSJcYqXgO8B8L34QtsdGjC0mlF8Ee9avR3M91G6B+ki8PURd
8iBJCsAUlue+I/ojUbQet2YjMYmRKB6vjRTOSSmc9BujkDKrM2UU+edpnbL7q/N2
Hyhh/t07zRi1OIDl+08mcBRdPNrR5uk3t3J5iNPD5xqoUt4XftBBjcRU7IEA7vOR
WljPfYkvdY8VmHaivD61N9LQLbCkXUXlwJRj6GctMSGrwabCQuYbIw4yCvVHdJm9
bOcdMrbuHd+cfZUHHUWt/YKGMuzNpLprSHt5Miy/XixDdD6CcyZ3s6sG3PNAb+c0
/S86Q3MFZNNRNGXIQYwHqHcHM4Kp2qOa2Z+I8QIDAQABAoIBAFnctNMbGOuZ1GgU
ETQt/E0OnRZfyztZJhVd0pyXKIuxZrFwYEg48yM4rgLeqO6dgHb/UaYMIxJsWvSZ
8GNouAabW3nTtCsl5s5Z0BHymbcl6y8hLr3/om8laEVgQyiI0jmOEayt3rWify8c
30LCZ78EApvvBPJ6A3ZopDZwyL+/635Mgblu43VK1cLQSJjGBFJDM6Z27JHjLyqV
mDPrhrIL3K/HwNTIrigi43jqUdNI+1LKa7tszjgiwqUvI+ECWMjCk1hnp86SNC7Z
GTennRUvrQ/0jg1LUxx8kzvId95LMWgNLBJrPaPlKW4uBPeWB4Pf4LM7g8fZI05U
IdK9THUCgYEAzQIokPvxYZ17np2rkjuQh6D0wg7Y8iNpSWINb7OOQyHksLo2Ovw7
38LLfyGQfJJ95cQi1yhTncsd59eNIkV/g9/AARa05oYfJ7wNZGoAE2SxoTPgAzTl
xQPVeclCvLE73mwzK6sEWnzGU5MDKMH48uGMfLqiDnZfalZ03Scdov8CgYEAyTaG
9igsJxFIvNqQZbTP/h7xAoltnPNXZRVJA4br7XqdQGCPE9zHv4Wxa+/Mtk6N0bCJ
SgKXiN4uPRHXKpYQ61ZgvbKw9e5rYvRX03y+ya9w8iOIzZTIS2f9+M6YbPoOMjq9
LRhCwiPTe2v9D77eusmQb8BoVb1Dq3+QTYKpBA8CgYBCy4Y+Huh5vp7tgj/JiIDB
wA6fP8kts531W+42y9D5TIy/jBxpQY+ci1JUXLI/9FbyyuHzKl98FRbsWA3S8cPn
Srq7YBOW3HJANwRCCEt4BiHd/RHq2YxXkbU3VfzZkAGKqcROYQ0tEmRoDIlF+VVM
hXKJnSF6BtV1xy+SctE0LwKBgEPjgeXL6BnGWyRdGhs2xnaXOfoBJFqwP+x7Igdu
nmuh0yzFZ4DsHPkhwpsIbamVF4SIa8ns1fP4AuHYAyD7QPomSr22bL6Nku3wQzG4
BSdHanRISQAUEwBeNfKcwhECzYdlCi8M4HlgXRpndRq666taFsGdyZYkJZDXmXiN
fTlBAoGBAJ5GPrG5fpTmo1Pcot4MU3iA2L0/auc9qtXDARJpBJdXYF/a3KWGLmvT
+G0PHQ82z1Yn9qIgc4cD3A9FpUnEY8kPagpTHpwLCjGBpx5VPRmIwpGPy6zuP1gQ
w1GRFfHjaWq16KKomhVFkxBuMKwAs8v1rGXMQ2DZsDXB8GssP6Cu
-----END RSA PRIVATE KEY-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChIlxipeA7wHwvfhC2x0aMLSaUXwR71q9Hcz3UboH6SLw9RF3yIEkKwBSW574j+iNRtB63ZiMxiZEoHq+NFM5JKZz0G6OQMqszZRT552mdsvur83YfKGH+3TvNGLU4gOX7TyZwFF082tHm6Te3cnmI08PnGqhS3hd+0EGNxFTsgQDu85FaWM99iS91jxWYdqK8PrU30tAtsKRdReXAlGPoZy0xIavBpsJC5hsjDjIK9Ud0mb1s5x0ytu4d35x9lQcdRa39goYy7M2kumtIe3kyLL9eLEN0PoJzJnezqwbc80Bv5zT9LzpDcwVk01E0ZchBjAeodwczgqnao5rZn4jx nimrod@nimrod
#!/bin/sh #!/bin/sh
set -eu set -eu
mkdir -p /tmp/gitreceive mkdir -p /var/tmp/gitreceive
tar -xC /tmp/gitreceive -f - tar -xC /var/tmp/gitreceive -f -
echo "OK" echo "OK"
--- ---
- hosts: ansible-role-gitreceive-openbsd - hosts: ansible-role-gitreceive-openbsd
gather_facts: false gather_facts: false
roles: [ansible-role-openbsd-bootstrap] roles: [openbsd-bootstrap]
- hosts: all - hosts: all
vars: vars:
gitreceive_public_keys: gitreceive_public_keys:
- '{{ lookup("file", "id_rsa.pub") }}' - '{{ lookup("file", "id_rsa.pub") }}'
gitreceive_receiver_script: '{{ lookup("file", "files/receiver.sh") }}' gitreceive_receiver_script: '{{ lookup("file", "files/receiver.sh") }}'
pre_tasks:
- name: Create SSH keypair
become: False
local_action: command ssh-keygen -t rsa -N '' -f files/id_rsa
args:
creates: files/id_rsa
roles: [ansible-role-gitreceive] roles: [ansible-role-gitreceive]
post_tasks: post_tasks:
- name: Create .ssh directory - name: Create .ssh directory
...@@ -35,9 +41,9 @@ ...@@ -35,9 +41,9 @@
creates: /root/.ssh/known_hosts creates: /root/.ssh/known_hosts
- name: Add localhost as a git remote - name: Add localhost as a git remote
command: git remote add test git@localhost:test blockinfile:
args: dest: /root/gitreceive/.git/config
chdir: /root/gitreceive block: |
register: gitreceive_add_remote [remote "test"]
changed_when: gitreceive_add_remote.rc == 0 url = git@localhost:test
failed_when: gitreceive_add_remote.rc != 0 and not 'already exists' in gitreceive_add_remote.stderr fetch = +refs/heads/*:refs/remotes/test/*
def test_gitreceive(Command, Ansible): def test_gitreceive(Command, Sudo):
Command('rm -rf /home/git/test /tmp/gitreceive') with Sudo():
Command('rm -rf /home/git/test /var/tmp/gitreceive')
push = Command('git -C /root/gitreceive push test master') push = Command('git -C /root/gitreceive push test master')
assert push.rc == 0 assert push.rc == 0
assert 'OK' in push.stderr assert 'OK' in push.stderr
with Sudo():
second_push = Command('git -C /root/gitreceive push test master') second_push = Command('git -C /root/gitreceive push test master')
assert second_push.rc == 0 assert second_push.rc == 0
assert 'Everything up-to-date' == second_push.stderr assert 'Everything up-to-date' in second_push.stderr
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment