Ansible
Install and Use
Using apt and older version
sudo apt install ansible sshpass
python3 -m venv venv source ansible/bin/activate # pip install -U pip pip install ansible pywinrm
inventory.yaml all:
vars: ansible_user:ansible_password:
windows:
hosts: winhost.example.com: vars: ansible_connection: winrm ansible_port: 5985 ansible_winrm_scheme: http # Recommend https if possible ansible_winrm_transport: ntlm ansible_winrm_server_cert_validation: ignore # Not recommended
linux:
hosts: linuxhost.example.com: vars: ansible_connection: ssh
https://www.vgemba.net/ansible/Ansible-WinRM-Workgroup/
ansible 'Windows' -i inventory.txt -m win_shell -a 'choco upgrade Chocolatey' ansible 'Windows' -m win_shell -i inventory.txt -a 'pwd' ansible 'Linux' -i inventory.txt -a 'pwd'
<br />Run local script on remotes
ansible 'Windows' -m "script ./a.ps1" -i inventory.txt
<br />
ansible myhost.example.com -a "pwd" --ask-pass
<br /><br /><br> <br> <br> # Use latest Python and Pip source Or lets just use Python Source of latest, pip
!/usr/bin/env bash
set -e pipefail
version='3.9.6'
get() { sudo apt install -y build-essential checkinstall sudo apt install -y libreadline-gplv2-dev libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
curl -LO https://www.python.org/ftp/python/$version/Python-$version.tgz tar xzf Python-$version.tgz }
install() {
cd Python-$version ./configure --prefix=/usr/local #./configure --prefix=/usr/local --enable-optimizations sudo make altinstall
}
get install
<br />Install ansible in virtual env
python3.9 -m venv venv source ansible/bin/activate
pip install -U pip
pip install ansible pywinrm
<br /><br />inventory.toml
[Windows] winhost.example.com
[Windows:vars]
ansible_user=
ansible_port=5985
ansible_winrm_scheme=http
ansible_port=5986 ansible_winrm_scheme=https ansible_winrm_server_cert_validation: ignore
[Linux] linuxhost.example.com
[Linux:vars]
ansible_user=