Saltstack Official Home Assistant Formula
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

117 lines
2.9KB

  1. {%- from "home_assistant/map.jinja" import server with context %}
  2. {%- if server.enabled %}
  3. home_assistant_packages:
  4. pkg.installed:
  5. - names: {{ server.pkgs }}
  6. home_assistant_user:
  7. user.present:
  8. - name: home_assistant
  9. - system: true
  10. - home: {{ server.dir.base }}
  11. {{ server.dir.base }}:
  12. virtualenv.manage:
  13. - user: home_assistant
  14. - system_site_packages: True
  15. - requirements: salt://home_assistant/files/requirements.txt
  16. - python: /usr/bin/python3
  17. - require:
  18. - pkg: home_assistant_packages
  19. - user: home_assistant_user
  20. home_assistant_install:
  21. pip.installed:
  22. {%- if server.source is defined and server.source.get("engine", "git") %}
  23. - editable: git+{{ server.source.address }}@{{ server.source.version }}#egg=homeassistant
  24. {%- else %}
  25. - name: homeassistant{%- if server.get('source', {}).version is defined %}=={{ server.source.version }}{%- endif %}
  26. {%- endif %}
  27. - user: home_assistant
  28. - pre_releases: True
  29. - bin_env: {{ server.dir.base }}
  30. - exists_action: w
  31. - require:
  32. - virtualenv: {{ server.dir.base }}
  33. - pkg: home_assistant_packages
  34. home_assistant_dir:
  35. file.directory:
  36. - names:
  37. - /etc/home_assistant
  38. - /var/log/home_assistant
  39. - mode: 700
  40. - makedirs: true
  41. - user: home_assistant
  42. - require:
  43. - virtualenv: {{ server.dir.base }}
  44. {%- if server.config.engine == 'git' %}
  45. home_assistant_config:
  46. git.latest:
  47. - name: {{ server.config.address }}
  48. - user: home_assistant
  49. - target: /etc/home_assistant
  50. - rev: {{ server.config.revision|default(server.config.branch) }}
  51. {%- if grains.saltversion >= "2015.8.0" %}
  52. - branch: {{ server.config.branch|default(server.config.revision) }}
  53. {%- endif %}
  54. {%- if server.config.identity is defined %}
  55. - identity: {{ server.config.identity }}
  56. {%- endif %}
  57. - force_reset: {{ server.config.force_reset|default(False) }}
  58. {%- else %}
  59. home_assistant_config:
  60. file.managed:
  61. - name: /etc/home_assistant/configuration.yaml
  62. - source: salt://home_assistant/files/configuration.yaml
  63. - template: jinja
  64. - user: home_assistant
  65. - mode: 600
  66. - require:
  67. - file: home_assistant_dir
  68. {%- if server.known_device is defined %}
  69. home_assistant_know_devices:
  70. file.managed:
  71. - name: /etc/home_assistant/known_devices.yaml
  72. - source: salt://home_assistant/files/known_devices.yaml
  73. - template: jinja
  74. - user: home_assistant
  75. - mode: 600
  76. - require:
  77. - file: home_assistant_dir
  78. {%- endif %}
  79. {%- endif %}
  80. home_assistant_service_script:
  81. file.managed:
  82. - name: /etc/systemd/system/home-assistant.service
  83. - source: salt://home_assistant/files/home-assistant.service
  84. - template: jinja
  85. - user: root
  86. - mode: 644
  87. - watch_in:
  88. - module: home_assistant_restart_systemd
  89. home_assistant_service:
  90. service.running:
  91. - name: home-assistant
  92. - enable: true
  93. - watch:
  94. - module: home_assistant_restart_systemd
  95. - file: home_assistant_service_script
  96. home_assistant_restart_systemd:
  97. module.wait:
  98. - name: service.systemctl_reload
  99. {%- endif %}