forked from CCCHH/ansible-infra
		
	Add esphome role and playbook
This commit is contained in:
		
					parent
					
						
							
								75408d8926
							
						
					
				
			
			
				commit
				
					
						e084462ae1
					
				
			
		
					 9 changed files with 84 additions and 0 deletions
				
			
		
							
								
								
									
										4
									
								
								inventories/thinkcccentre/host_vars/esphome.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								inventories/thinkcccentre/host_vars/esphome.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
esphome__version: "2022.11.4"
 | 
			
		||||
nginx__configs:
 | 
			
		||||
  - name: esphome
 | 
			
		||||
    content: "{{ lookup('ansible.builtin.file', 'configs/esphome/nginx/esphome.conf') }}"
 | 
			
		||||
| 
						 | 
				
			
			@ -6,3 +6,5 @@ all:
 | 
			
		|||
          ansible_host: light.z9
 | 
			
		||||
        automation:
 | 
			
		||||
          ansible_host: automation.z9
 | 
			
		||||
        esphome:
 | 
			
		||||
          ansible_host: esphome.z9
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								playbooks/deploy_esphome.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								playbooks/deploy_esphome.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
---
 | 
			
		||||
- name: Deploy esphome on esphome.z9
 | 
			
		||||
  become: true
 | 
			
		||||
  hosts: esphome
 | 
			
		||||
  roles:
 | 
			
		||||
    - esphome
 | 
			
		||||
    - nginx
 | 
			
		||||
							
								
								
									
										8
									
								
								playbooks/files/configs/esphome/nginx/esphome.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								playbooks/files/configs/esphome/nginx/esphome.conf
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
server {
 | 
			
		||||
	listen 80;
 | 
			
		||||
	server_name esphome.z9;
 | 
			
		||||
 | 
			
		||||
	location / {
 | 
			
		||||
		proxy_pass http://localhost:6052;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								playbooks/roles/esphome/files/esphome.service
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								playbooks/roles/esphome/files/esphome.service
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
[Unit]
 | 
			
		||||
Description=ESPHome
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
ExecStart=/home/esphome/.local/bin/esphome dashboard config/
 | 
			
		||||
WorkingDirectory=/home/esphome/.local/bin
 | 
			
		||||
User=esphome
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
							
								
								
									
										4
									
								
								playbooks/roles/esphome/handlers/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								playbooks/roles/esphome/handlers/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
- name: Restart esphome
 | 
			
		||||
  ansible.builtin.systemd:
 | 
			
		||||
    service: esphome.service
 | 
			
		||||
    state: restarted
 | 
			
		||||
							
								
								
									
										8
									
								
								playbooks/roles/esphome/meta/argument_specs.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								playbooks/roles/esphome/meta/argument_specs.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
---
 | 
			
		||||
argument_specs:
 | 
			
		||||
  main:
 | 
			
		||||
    options:
 | 
			
		||||
      esphome__version:
 | 
			
		||||
        description: ESPHome version that should be installed.
 | 
			
		||||
        type: str
 | 
			
		||||
        required: true
 | 
			
		||||
							
								
								
									
										8
									
								
								playbooks/roles/esphome/meta/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								playbooks/roles/esphome/meta/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
---
 | 
			
		||||
dependencies:
 | 
			
		||||
  - role: distribution_check
 | 
			
		||||
    vars:
 | 
			
		||||
      distribution_check__supported_distributions:
 | 
			
		||||
        - name: Debian
 | 
			
		||||
          versions:
 | 
			
		||||
            - "11"
 | 
			
		||||
							
								
								
									
										33
									
								
								playbooks/roles/esphome/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								playbooks/roles/esphome/tasks/main.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
- name: Ensure acl is installed
 | 
			
		||||
  ansible.builtin.apt:
 | 
			
		||||
    name: acl
 | 
			
		||||
- name: Ensure pip is installed
 | 
			
		||||
  ansible.builtin.apt:
 | 
			
		||||
    name: python3-pip
 | 
			
		||||
- name: Ensure esphome user exists
 | 
			
		||||
  ansible.builtin.user:
 | 
			
		||||
    name: esphome
 | 
			
		||||
- name: Ensure esphome dependencies are installed
 | 
			
		||||
  become_user: esphome
 | 
			
		||||
  ansible.builtin.pip:
 | 
			
		||||
    name: tornado
 | 
			
		||||
    extra_args: --user
 | 
			
		||||
- name: Ensure esphome are installed
 | 
			
		||||
  become_user: esphome
 | 
			
		||||
  ansible.builtin.pip:
 | 
			
		||||
    name: "esphome=={{ esphome__version }}"
 | 
			
		||||
    extra_args: --user
 | 
			
		||||
  notify: Restart esphome
 | 
			
		||||
- name: Ensure esphome systemd service file is deployed
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: esphome.service
 | 
			
		||||
    dest: /etc/systemd/system/esphome.service
 | 
			
		||||
    mode: 0644
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
  notify: Restart esphome
 | 
			
		||||
- name: Ensure esphome service is enabled and started
 | 
			
		||||
  ansible.builtin.systemd:
 | 
			
		||||
    service: esphome.service
 | 
			
		||||
    enabled: true
 | 
			
		||||
    state: started
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue