Difference between revisions of "Ansible"

From UVOO Tech Wiki
Jump to navigation Jump to search
Line 14: Line 14:
  
 
inventory.yaml
 
inventory.yaml
 +
```
 
all:
 
all:
 
   vars:
 
   vars:
Line 36: Line 37:
  
 
```
 
```
ansible 'Windows' -i inventory.txt -m win_shell -a 'choco upgrade Chocolatey'
+
ansible 'Windows' -m win_shell -i inventory.yaml -a 'pwd'
ansible 'Windows' -m win_shell -i inventory.txt -a 'pwd'
+
ansible 'Linux' -i inventory.yaml -a 'pwd'
ansible 'Linux' -i inventory.txt -a 'pwd'
 
 
```
 
```
  
 
Run local script on remotes
 
Run local script on remotes
 
```
 
```
ansible 'Windows' -m "script ./a.ps1" -i inventory.txt
+
ansible 'Windows' -m "script ./a.ps1" -i inventory.yaml
 
```
 
```
  

Revision as of 22:29, 6 July 2021

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: <myusername>
    ansible_password: <mypass>
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' -m win_shell -i inventory.yaml -a 'pwd'
ansible 'Linux' -i inventory.yaml -a 'pwd'

Run local script on remotes

ansible 'Windows' -m "script ./a.ps1" -i inventory.yaml
ansible myhost.example.com -a "pwd" --ask-pass




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

Install ansible in virtual env

python3.9 -m venv venv
source ansible/bin/activate
# pip install -U pip
pip install ansible pywinrm

inventory.toml

[Windows]
winhost.example.com

[Windows:vars]
ansible_user=<myuser>
ansible_password=<mypass>
ansible_connection=winrm
# 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=<my user>
ansible_password=<my pass>
ansible_connection=ssh

Presentations

https://www.vgemba.net/ansible/Ansible-WinRM-Workgroup/