Update README.md

This commit is contained in:
Alex Kup 2023-06-09 19:01:40 +03:00 committed by GitHub
parent 6aee423331
commit bc59f0bb8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

200
README.md
View file

@ -33,11 +33,12 @@
- [Socket](#Socket)
- [Excel](#Excel)
- [XML](#XML)
- [DSC](#DSC)
- [Git](#Git)
- [SQLite](#SQLite)
- [MySQL](#MySQL)
- [MSSQL](#MSSQL)
- [DSC](#DSC)
- [Ansible](#Ansible)
### Help
`Get-Verb` действия/глаголы, утвержденные для использования в командлетах \
@ -2887,57 +2888,6 @@ West,Texas,927,923.71
$null,Tennessee,466,770.67
"@
```
# DSC
`Import-Module PSDesiredStateConfiguration` \
`(Get-Module PSDesiredStateConfiguration).ExportedCommands` \
`Get-DscLocalConfigurationManager`
`Get-DscResource` \
`Get-DscResource -Name File -Syntax` # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
`Ensure = Present` настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет создать, запустить) \
`Ensure = Absent` настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет удалить, остановить)
```
Configuration DSConfigurationProxy {
Node uk-vproxy-01 {
File CreateDir {
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\Temp"
}
Service StopW32time {
Name = "w32time"
State = "Stopped" # Running
}
WindowsProcess RunCalc {
Ensure = "Present"
Path = "C:\WINDOWS\system32\calc.exe"
Arguments = ""
}
Registry RegSettings {
Ensure = "Present"
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
ValueName = "TestName"
ValueData = "TestValue"
ValueType = "String"
}
# WindowsFeature IIS {
# Ensure = "Present"
# Name = "Web-Server"
# }
}
}
```
`$Path = (DSConfigurationProxy).DirectoryName` \
`Test-DscConfiguration -Path $Path | select *` ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено (не соответствует) \
`Start-DscConfiguration -Path $Path` \
`Get-Job` \
`$srv = "uk-vproxy-01"` \
`Get-Service -ComputerName $srv | ? name -match w32time # Start-Service` \
`icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force` \
`icm $srv {ls C:\ | ? name -match Temp} | ft # rm`
# Git
`git --version`
@ -3544,3 +3494,149 @@ exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
- Очистка процедурного кэша, выполняется после обновления статистики. Оптимизатор MS SQL Server кэширует планы запросов для их повторного выполнения. Это делается для того, чтобы экономить время, затрачиваемое на компиляцию запроса в том случае, если такой же запрос уже выполнялся и его план известен. После обновия статистики, не будет очищен процедурный кэш, то SQL Server может выбрать старый (неоптимальный) план запроса из кэша вместо того, чтобы построить новый (более оптимальный) план.
DBCC FREEPROCCACHE
# DSC
`Import-Module PSDesiredStateConfiguration` \
`(Get-Module PSDesiredStateConfiguration).ExportedCommands` \
`Get-DscLocalConfigurationManager`
`Get-DscResource` \
`Get-DscResource -Name File -Syntax` # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
`Ensure = Present` настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет создать, запустить) \
`Ensure = Absent` настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет удалить, остановить)
```
Configuration DSConfigurationProxy {
Node uk-vproxy-01 {
File CreateDir {
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\Temp"
}
Service StopW32time {
Name = "w32time"
State = "Stopped" # Running
}
WindowsProcess RunCalc {
Ensure = "Present"
Path = "C:\WINDOWS\system32\calc.exe"
Arguments = ""
}
Registry RegSettings {
Ensure = "Present"
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
ValueName = "TestName"
ValueData = "TestValue"
ValueType = "String"
}
# WindowsFeature IIS {
# Ensure = "Present"
# Name = "Web-Server"
# }
}
}
```
`$Path = (DSConfigurationProxy).DirectoryName` \
`Test-DscConfiguration -Path $Path | select *` ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено (не соответствует) \
`Start-DscConfiguration -Path $Path` \
`Get-Job` \
`$srv = "uk-vproxy-01"` \
`Get-Service -ComputerName $srv | ? name -match w32time # Start-Service` \
`icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force` \
`icm $srv {ls C:\ | ? name -match Temp} | ft # rm`
# Ansible
`apt-get install ansible`
`nano /etc/ansible/ansible.cfg` \
`#inventory = /etc/ansible/hosts`
`nano /etc/ansible/hosts`
```
[elk]
devlog-01.domain.local ansible_host=192.168.11.230
netbox-01.domain.local ansible_host=192.168.11.245
[all:vars]
path_user=/home/us
ansible_user=us
ansible_ssh_port=22
[ws_vproxy]
vproxy-01 ansible_host=192.168.11.196
vproxy-03 ansible_host=192.168.11.188
vproxy-04 ansible_host=192.168.11.64
[ws_vproxy:vars]
ansible_user=winrm
#ansible_user=support4@DOMAIN.LOCAL
ansible_password=123098
ansible_port=5986
ansible_connection=winrm
ansible_winrm_transport=basic
#ansible_winrm_transport=kerberos
ansible_winrm_server_cert_validation=ignore
validate_certs=false
```
`ansible-inventory --list -y`
### Modules
```
ansible-doc -l | grep windows # оф. документация модулей
ansible elk -m ping
#ansible all -m ping -u us
ansible all -m shell -a "lsblk " -vvvvv # debug выполнения команды, чем больше "v" тем больше отображение
ansible elk -m setup | grep -iP "mem|proc" # информация о железе
ansible elk -m apt -a "name=mc"
ansible elk -m service -a "name=ssh state=restarted enabled=yes" -b # перезапустить службу
# -b - повысить привилегии (sudo)
```
### Copy
```
echo "21" > test.txt
ansible elk -m copy -a "src=test.txt dest=/root mode=777" -b
ansible elk -a "ls /root" -b
ansible elk -a "cat /root/test.txt" -b
```
### Args
```
ansible elk -m shell -a "uptime"
ansible elk -a "mkdir /home/us/test"
ansible elk -a "ls $path_user"
```
### Windows Modules
```
ansible ws_vproxy -m win_ping
ansible ws_vproxy -m raw -a "ipconfig"
ansible ws_vproxy -m win_shell -a "Get-Service | select name,status"
ansible ws_vproxy -m win_service -a "name=Spooler state=started"
```
### Playbook
`nano /etc/ansible/elk.yml`
```
- hosts: elk
become: yes
tasks:
- name: Create group tester
action: group name=tester state=present
- name: Add user to system
user: name=tester shell=/bin/bash groups=tester append=yes
```
`ansible-playbook /etc/ansible/elk.yml # -i /etc/ansible/hosts`
### Обновить и установить пакет
```
- hosts: all
become: yes
tasks:
- name: Run apt-get update
apt:
update_cache: yes
- name: Install latest version nmap
apt:
name: nmap
state: latest
```