Автоматизация ИТ: Bash, Python, Ansible, PowerShell и инструменты управления конфигурацией

Вот несколько методов автоматизации ИТ с примерами кода:

  1. Сценарии Bash:
    Сценарии Bash — это популярный метод автоматизации повторяющихся задач в средах Linux. Вот пример простого сценария bash, создающего резервную копию каталога:

    #!/bin/bash
    SOURCE_DIR="/path/to/source"
    BACKUP_DIR="/path/to/backup"
    TIMESTAMP=$(date +%Y%m%d%H%M%S)
    tar -czvf "$BACKUP_DIR/backup_$TIMESTAMP.tar.gz" "$SOURCE_DIR"
  2. Сценарии Python:
    Python — это универсальный язык сценариев, обычно используемый для автоматизации. Вот пример скрипта Python, который автоматизирует передачу файлов с помощью библиотеки paramiko:

    import paramiko
    host = "example.com"
    username = "your_username"
    password = "your_password"
    source_path = "/path/to/source"
    destination_path = "/path/to/destination"
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(host, username=username, password=password)
    sftp = ssh.open_sftp()
    sftp.put(source_path, destination_path)
    sftp.close()
    ssh.close()
  3. Ansible:
    Ansible — это мощный инструмент автоматизации, использующий декларативный язык для определения задач автоматизации ИТ-инфраструктуры. Вот пример сборника сценариев Ansible, который устанавливает пакет на удаленные серверы:

    ---
    - name: Install Package
    hosts: servers
    become: true
    tasks:
    - name: Install Package
      apt:
        name: package_name
        state: present
  4. Сценарии PowerShell:
    PowerShell — это язык сценариев, который в основном используется в средах Windows. Вот пример сценария PowerShell, который автоматизирует создание пользователей Active Directory:

    $givenName = "John"
    $surname = "Doe"
    $username = "jdoe"
    $password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
    New-ADUser -GivenName $givenName -Surname $surname -SamAccountName $username -UserPrincipalName "$username@example.com" -AccountPassword $password -Enabled $true
  5. Инструменты управления конфигурацией.
    Такие инструменты, как Puppet, Chef и SaltStack, используются для автоматизации настройки и управления инфраструктурой. Вот пример манифеста Puppet, который устанавливает и настраивает Apache на узлах:

    node 'webserver' {
    package { 'apache2':
    ensure => installed,
    }
    service { 'apache2':
    ensure => running,
    enable => true,
    }
    file { '/var/www/html/index.html':
    content => 'Hello, World!',
    }
    }