Difference between revisions of "Ansible"

From UVOO Tech Wiki
Jump to navigation Jump to search
Line 13: Line 13:
 
```
 
```
  
inventory.txt
+
inventory.yaml
```
+
all:
[Windows]
+
  vars:
winhost.example.com
+
    ansible_user: <myusername>
 
+
    ansible_password: <mypass>
[Windows:vars]
+
windows:
ansible_user=<myuser>
+
  hosts:
ansible_password=<mypass>
+
    winhost.example.com:
ansible_connection=winrm
+
  vars:
# ansible_port=5985
+
    ansible_connection: winrm
# ansible_winrm_scheme=http
+
    ansible_port: 5985
ansible_port=5986
+
    ansible_winrm_scheme: http # Recommend https if possible
ansible_winrm_scheme=https
+
    ansible_winrm_transport: ntlm
ansible_winrm_server_cert_validation: ignore
+
    ansible_winrm_server_cert_validation: ignore # Not recommended
 
+
linux:
 
+
  hosts:
[Linux]
+
    linuxhost.example.com:
linuxhost.example.com
+
  vars:
 
+
    ansible_connection: ssh
 
 
[Linux:vars]
 
ansible_user=<my user>
 
ansible_password=<my pass>
 
ansible_connection=ssh
 
 
```
 
```
 
https://www.vgemba.net/ansible/Ansible-WinRM-Workgroup/
 
https://www.vgemba.net/ansible/Ansible-WinRM-Workgroup/
Line 99: Line 94:
 
```
 
```
  
 +
 +
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
 +
```
  
  

Revision as of 22:28, 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: 
   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_password= 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= ansible_password= ansible_connection=ssh ```

Presentations

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