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.

121 lines
3.0KB

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