Linux/Ansible: Difference between revisions

From Wiki
No edit summary
mNo edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| class="wikitable" style="float:right; margin-left: 10px;" width="400px"
| Other articles
|-
|
<DynamicPageList>
category = Linux/Ansible
ordermethod = sortkey
</DynamicPageList>
|}


== /srv/ansible-config/roles/<role-name>/tasks/main.yml ==
= Install =
* apt:
<pre>
sudo apt update
sudo apt install ansible 
</pre>
or newer version:
<pre>
sudo apt-add-repository ppa:ansible/ansible
sudo apt install ansible
</pre>
 
 
* Install plugins
<pre>
ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
</pre>
 
= Commands =
<blockquote><pre>
<blockquote><pre>
- name: update apt
ansible --version
  apt:
</pre></blockquote>
    update_cache: yes
    cache_valid_time: 3600


- name: install apt packages
<blockquote><pre>
  apt:
ansible-playbook pb-machinex.yml
    name: ["aptitude", "git", "mc", "nmap"]
</pre></blockquote>
</pre></blockquote>
* systemd:
 
<blockquote><pre>
<blockquote><pre>
- name: reload systemd config
ansible hostname -m setup    # variables for "hostname"
  systemd:
    daemon_reload: yes
 
- name: restart fail2ban
  systemd:
    name: fail2ban
    state: restarted
</pre></blockquote>
</pre></blockquote>
* copy files:
<blockquote><pre>
- name: copy openvpn client config files
  copy:
    src: ../files/
    dest: /etc/openvpn


- name: enable fail2ban config
  copy:
    src: /etc/fail2ban/fail2ban.conf
    dest: /etc/fail2ban/fail2ban.local
    remote_src: yes
</pre></blockquote>
* edit files:
<blockquote><pre>
- name: enable openvpn in /etc/default/openvpn
  lineinfile:
    path: /etc/default/openvpn
    line: AUTOSTART="all"


- name: enable openvpn in /etc/default/openvpn
== Step-by-step ==
  lineinfile:
# Setup file structure
    path: /etc/default/openvpn
# When using ssh key access
    line: AUTOSTART="all"
#: <pre>ssh-copy-id -i ~/.ssh/id_rsa user@server</pre>
    create: yes                  # create if file does not exist (default: no)
# When using ssh password
    backup: yes                  # create a backup file (default: no)
#: <pre>apt install sshpass</pre>
    state: absent                # the line should not be there
#: <pre>ansible-galaxy collection install ansible.posix    # when using ansible to set ssh key</pre>
    state: present                # the line should be there (default)
# Run ansible playbook
    mode: '644'
#:<pre>ansible-playbook pb-hostname.yml</pre>
    owner: root
#:options:
    group: root
#::-k (ssh pass)
#::-K (password for sudo)


- name: change sudoers
= Links =
  lineinfile:
* https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html
    path: /etc/sudoers
* https://medium.com/@tedchength/installing-docker-using-ansible-script-c182787f2fa1
    state: present
    regexp: '^%ADMIN ALL='
    line: '%ADMIN ALL=(ALL) NOPASSWD: ALL'
    validate: '/usr/sbin/visudo -cf %s'
</pre></blockquote>




[[Category:Linux/System]]
[[Category:Linux/Deployment]]
[[Category:Linux]]
[[Category:Linux]]

Latest revision as of 20:16, 26 November 2023

Other articles

Install

sudo apt update
sudo apt install ansible  

or newer version:

sudo apt-add-repository ppa:ansible/ansible
sudo apt install ansible


  • Install plugins
ansible-galaxy collection install ansible.posix 
ansible-galaxy collection install community.general

Commands

ansible --version
ansible-playbook pb-machinex.yml
ansible hostname -m setup    # variables for "hostname"


Step-by-step

  1. Setup file structure
  2. When using ssh key access
    ssh-copy-id -i ~/.ssh/id_rsa user@server
  3. When using ssh password
    apt install sshpass
    ansible-galaxy collection install ansible.posix    # when using ansible to set ssh key
  4. Run ansible playbook
    ansible-playbook pb-hostname.yml
    options:
    -k (ssh pass)
    -K (password for sudo)

Links