forked from CCCHH/ansible-infra
		
	renovate(role): introduce first basic Renovate role
Sets up Renovate using Docker and systemd service and timer to run regularly. Also add accompanying host group and playbook play.
This commit is contained in:
		
					parent
					
						
							
								dce4e7c4d4
							
						
					
				
			
			
				commit
				
					
						8388657d33
					
				
			
		
					 9 changed files with 95 additions and 0 deletions
				
			
		| 
						 | 
					@ -195,3 +195,5 @@ ansible_pull_hosts:
 | 
				
			||||||
    wiki:
 | 
					    wiki:
 | 
				
			||||||
msmtp_hosts:
 | 
					msmtp_hosts:
 | 
				
			||||||
  hosts:
 | 
					  hosts:
 | 
				
			||||||
 | 
					renovate_hosts:
 | 
				
			||||||
 | 
					  hosts:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -88,5 +88,10 @@
 | 
				
			||||||
  roles:
 | 
					  roles:
 | 
				
			||||||
    - msmtp
 | 
					    - msmtp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Ensure Renovate is setup on renovate_hosts
 | 
				
			||||||
 | 
					  hosts: renovate_hosts
 | 
				
			||||||
 | 
					  roles:
 | 
				
			||||||
 | 
					    - renovate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: Run ensure_eh22_styleguide_dir Playbook
 | 
					- name: Run ensure_eh22_styleguide_dir Playbook
 | 
				
			||||||
  ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml
 | 
					  ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								roles/renovate/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/renovate/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					# Role `renovate`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A role for setting up [Renovate](https://docs.renovatebot.com/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Supported Distributions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Should work on Debian-based distributions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Required Arguments
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `renovate__config`: The Renovate config to deploy.
 | 
				
			||||||
							
								
								
									
										10
									
								
								roles/renovate/files/renovate.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								roles/renovate/files/renovate.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,10 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=renovate
 | 
				
			||||||
 | 
					After=network-online.target
 | 
				
			||||||
 | 
					Wants=network-online.target
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					Type=oneshot
 | 
				
			||||||
 | 
					ExecStart=/usr/bin/docker run --rm \
 | 
				
			||||||
 | 
					    -v "/etc/renovate/config.js:/usr/src/app/config.js" \
 | 
				
			||||||
 | 
					    renovate/renovate
 | 
				
			||||||
							
								
								
									
										8
									
								
								roles/renovate/files/renovate.timer
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/renovate/files/renovate.timer
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=renovate running every 15 minutes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Timer]
 | 
				
			||||||
 | 
					OnCalendar=*-*-* *:00,15,30,45:00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=timers.target
 | 
				
			||||||
							
								
								
									
										4
									
								
								roles/renovate/handlers/main.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/renovate/handlers/main.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					- name: systemd daemon reload
 | 
				
			||||||
 | 
					  ansible.builtin.systemd_service:
 | 
				
			||||||
 | 
					    daemon_reload: true
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
							
								
								
									
										6
									
								
								roles/renovate/meta/argument_specs.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								roles/renovate/meta/argument_specs.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					argument_specs:
 | 
				
			||||||
 | 
					  main:
 | 
				
			||||||
 | 
					    options:
 | 
				
			||||||
 | 
					      renovate__config:
 | 
				
			||||||
 | 
					        type: str
 | 
				
			||||||
 | 
					        required: true
 | 
				
			||||||
							
								
								
									
										3
									
								
								roles/renovate/meta/main.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								roles/renovate/meta/main.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					dependencies:
 | 
				
			||||||
 | 
					  - role: docker
 | 
				
			||||||
							
								
								
									
										46
									
								
								roles/renovate/tasks/main.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								roles/renovate/tasks/main.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					- name: ensure renovate config directory exists
 | 
				
			||||||
 | 
					  ansible.builtin.file:
 | 
				
			||||||
 | 
					    path: /etc/renovate
 | 
				
			||||||
 | 
					    state: directory
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: root
 | 
				
			||||||
 | 
					    mode: "0755"
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: ensure renovate config
 | 
				
			||||||
 | 
					  ansible.builtin.copy:
 | 
				
			||||||
 | 
					    content: "{{ renovate__config }}"
 | 
				
			||||||
 | 
					    dest: /etc/renovate/config.js
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: root
 | 
				
			||||||
 | 
					    mode: "0640"
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: ensure systemd service exists
 | 
				
			||||||
 | 
					  ansible.builtin.copy:
 | 
				
			||||||
 | 
					    src: renovate.service
 | 
				
			||||||
 | 
					    dest: /etc/systemd/system/renovate.service
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: root
 | 
				
			||||||
 | 
					    mode: "0644"
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  notify:
 | 
				
			||||||
 | 
					    - systemd daemon reload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: ensure systemd timer exists
 | 
				
			||||||
 | 
					  ansible.builtin.copy:
 | 
				
			||||||
 | 
					    src: renovate.timer
 | 
				
			||||||
 | 
					    dest: /etc/systemd/system/renovate.timer
 | 
				
			||||||
 | 
					    owner: root
 | 
				
			||||||
 | 
					    group: root
 | 
				
			||||||
 | 
					    mode: "0644"
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
 | 
					  notify:
 | 
				
			||||||
 | 
					    - systemd daemon reload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: ensure systemd timer is started and enabled
 | 
				
			||||||
 | 
					  ansible.builtin.systemd_service:
 | 
				
			||||||
 | 
					    name: renovate.timer
 | 
				
			||||||
 | 
					    state: started
 | 
				
			||||||
 | 
					    enabled: true
 | 
				
			||||||
 | 
					  become: true
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue