--- - hosts: all handlers: - name: reboot reboot: become: true vars: minion_master: localhost tasks: - name: update system. apt: name: '*' state: latest update_cache: true become: true notify: reboot - name: install pip apt: name: python3-pip state: latest become: true - name: install salt pip: name: salt state: present become: true - name: create salt dirs. file: path: /etc/salt/minion.d state: directory mode: u=rwX,g=rwX become: true - name: create minion file. copy: dest: /etc/salt/minion_id content: "{{ ansible_hostname }}" mode: u=rw,g=rw,o=r become: true - name: set master fact. set_fact: minion_master: 192.168.33.10 when: ansible_hostname != 'master' - name: set minion master. copy: dest: /etc/salt/minion.d/master.conf content: "master: {{ minion_master }}" mode: u=rw,g=r,o=r become: true - hosts: master tasks: - name: Ensure salt master dir is created. file: state: directory path: /etc/salt/master.d mode: u=rwX,g=rwX,o=rX become: true - name: Ensure roots.conf is created. copy: dest: /etc/salt/master.d/roots.conf content: | file_roots: base: - /srv/salt/base mode: u=rw,g=rw,o=r become: true - name: Create salt base dir. file: path: /srv/salt state: directory mode: u=rwX,g=rwX,o=rX become: true - name: Ensure git is installed. apt: name: git state: present become: true - name: Check base state. stat: path: /srv/salt/base/.git register: base_git_state - name: Remove bad base dir. file: state: absent path: /srv/salt/base become: true when: base_git_state.stat.exists - name: Ensure salt base state is cloned. git: repo: https://gitea.zigford.org/zigford/salt_class.git dest: /srv/salt accept_hostkey: yes become: true - name: Wack down systemd unit for master. copy: dest: /etc/systemd/system/salt-master.service content: | [Unit] Description=Salt master daemon [Service] Type=simple ExecStart=/usr/local/bin/salt-master -d PIDFile=/var/run/salt-master.pid [Install] WantedBy=multi-user.target mode: u=rw,g=rw,o=r become: true - name: Ensure salt-master is running. systemd: daemon_reload: true name: salt-master.service enabled: true state: started become: true - hosts: all tasks: - name: Wack down systemd unit for minion. copy: dest: /etc/systemd/system/salt-minion.service content: | [Unit] Description=Salt minion daemon [Service] Type=simple ExecStart=/usr/local/bin/salt-minion -d PIDFile=/var/run/salt-minion.pid [Install] WantedBy=multi-user.target mode: u=rw,g=rw,o=r become: true - name: Ensure salt-minion is running. systemd: daemon_reload: true name: salt-minion.service enabled: true state: started become: true