NH.A.0004 —— Объяснение 20 модулей Ansible и анализ сценария Playbook

1. Обзор:
1. Введение и характеристика анализ
в анзибле автоматизированной эксплуатации и технического обслуживание инструментов 2. анзибль автоматизированных операции и инструмент обслуживания принципов , и немного в глубине понимания
3. анзибль модуля предприятия реальных боевые инструментов и команды упражнение
4. анзибль автоматизированного управления и инструмента обслуживания Playbook ли приложение реальные боевые
5. Подробного объяснения Файлы конфигурации Ansible и расширенная настройка производительности
Вставьте описание изображения сюда

Три основные функции инженеров по облачным вычислениям linux:
Вставьте описание изображения сюда
формирование архитектуры платформы: ответственность за участие и анализ рациональности проектирования архитектуры, построение архитектуры управления платформой эксплуатации и обслуживания и использование решений с открытым исходным кодом для обеспечения эффективной и стабильной работы после выпуска продукта, обеспечения и непрерывности Повысьте доступность услуг, обеспечьте безопасность пользовательских данных и улучшите взаимодействие с пользователем.
Гарантия ежедневной эксплуатации: отвечает за использование технологий эксплуатации и технического обслуживания или платформы эксплуатации и технического обслуживания, чтобы гарантировать, что продукт может быть выпущен и запущен эффективно, и отвечает за обеспечение стабильной работы продукта 7 * 24 часа. В течение этого периода проблемы могут быть быстро обнаружены и решены, а также в повседневной работе. Оптимизация рациональности архитектуры и развертывания системы для повышения стабильности системных сервисов и
оптимизации производительности и эффективности: используйте инструменты автоматизации или платформы эксплуатации и обслуживания для повышения эффективности разработки программного обеспечения в цикле разработки, непрерывно оптимизируйте архитектуру системы, повышайте эффективность развертывания и оптимизируйте использование ресурсов. Чтобы поддерживать непрерывную итерацию продукта, необходимо постоянно оптимизировать и корректировать архитектуру, чтобы гарантировать, что весь продукт может продолжать обогащаться и усложняться, обеспечивая при этом высокую доступность.
Что такое Ansible:
Ansible - это просто система управления конфигурацией (система управления конфигурацией), вам нужно только использовать ssh для доступа к вашему серверу или оборудованию. Он также отличается от других инструментов тем, что использует методы push вместо марионетки и так далее. Таким образом, вы можете развернуть код на любом количестве серверов, используя метод извлечения и установки агента!
Что может Ansible:
Ansible может помочь нам выполнить некоторые пакетные задачи или выполнить некоторые общие задачи, которые необходимо часто повторять;
например: установить службы nginx на 100 серверов одновременно и запустить их после установки.
Например: поместить файл сразу Скопируйте на серверы 100.
Например: всякий раз, когда новый сервер присоединяется к рабочей среде, вам необходимо развернуть службу для нового сервера, то есть вам нужно часто повторять одну и ту же работу.
Мы можем использовать Ansible в этих сценариях

Архитектура Ansible:
Вставьте описание изображения сюдазеленый цвет справа - это наш управляемый хост (виртуальная машина, физическая машина, облачный хост и т. Д.). Из приведенной выше диаграммы архитектуры мы видим, что Ansible состоит из списка хостов (конфигурация), playbook (конфигурация) и различных плагинов модулей. Проще говоря, пользователь (администратор) вызывает различные модули и параметры Ansible через конфигурацию списка хостов Ansible или конфигурацию playbook (набор задач) для выполнения единого управления хостами в списке.

Ansible может работать на Linux, BSD, Mac OS и других платформах. Минимальное требование для версии среды Python - Python2.6 или выше. Если версия программного обеспечения Python операционной системы - 2.4, вам необходимо выполнить обновление, чтобы использовать инструменты Ansible;

Конфигурация Фактический бой Ansible:
1. Аппаратная среда:
конец Ansible-сервера: 192.168.1.60
Сторона клиента
Ansible: 192.168.1.70
Сторона клиента Ansible : 192.168.1.71 Сторона клиента Ansible: 192.168.1.72

Метод установки:
установка исходного кода, pip, установка yum;
операционная система Centos Red Hat может автоматически устанавливать Ansible на основе инструмента YUM непосредственно перед установкой Centos6.x или Centos7.x, вам необходимо установить исходный код расширения epel, код выглядит следующим образом:

2. Экологическая установка:

[root@localhost ~]# yum -y install epel-release   //安装扩展源
[root@localhost ~]# yum install -y ansible
 (11/15): ansible-2.9.14-1.el7.noarch.rpm    
[root@localhost ~]# ansible --version    //查看它的版本
ansible 2.9.14 
python version = 2.7.5 
[root@localhost ~]# ll /etc/ansible/     //可以查看到它的配置文件
-rw-r--r-- 1 root root 19985 10月  8 01:35 ansible.cfg        //此文件为Ansible的主配置文件
-rw-r--r-- 1 root root  1016 10月  8 01:35 hosts              //定义主机组的
drwxr-xr-x 2 root root     6 10月  8 01:35 roles              //定义不同角色

Список хостов Ansible:
удаленное управление пакетами Ansible, при котором команды выполнения выполняются через Ad-Hoc, и несколько команд однократного выполнения могут выполняться быстро, и нет необходимости сохранять выполненные команды. Файл хостов по умолчанию настраивает список хостов, и вы можете настраивать группы. Можно определить различные IP-адреса и правила, а список хостов настроен по умолчанию.

[root@localhost ansible]# cat hosts |more    //查看Ansible主机清单
[root@localhost ansible]# vim hosts 
# them like this:
[web]                   //定义了一个组名
192.168.1.[70:72]       //定义了组内的主机、 70/71/72主机
[web]                   //或者这样定义也可以
192.168.1.70
192.168.1.71
192.168.1.72

Фактический бой модуля Ping:
Самым основным модулем Ansible является модуль ping, который в основном используется для определения того, находится ли клиент в сети или нет.Используйте сам сервер ping, Fan Hu относится к измененному ping;

//ansible web -m ping  //使用Ansible对web组内的主机进行ping模块测试
[root@localhost ansible]# ansible web -m ping
Are you sure you want to continue connecting (yes/no)?      //提示没有配置秘钥对,解决方案针对问题一
[root@localhost ~]# ansible web -m ping
192.168.1.70 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.72 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.71 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}

Командный модуль:
командный модуль Ansible - это модуль Ansible по умолчанию, который в основном используется для выполнения команд linux и может напрямую управлять удаленными серверами, операциями задач и т. Д.

[root@localhost ~]# ansible web -m command -a "date"
192.168.1.71 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.70 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.72 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
[root@localhost ~]# ansible web -m command -a "ping -c 1 www.baidu.com" 
[root@localhost ~]# ansible web -m command -a "yum install httpd -y"
[root@localhost ~]# ansible web -m command -a "systemctl start httpd.service"
[root@localhost ~]# ansible web -m command -a "ss -tan"     //查看端口
Ansible Playbook应用:
Playbook由一个或多个“paly”组成的列表,play的主要功能Ansible中的Task定义好的角色,指定剧本对应的服务器组;
远程安装nginx服务器脚本;playbook代码如下;
vim nginx_install.yaml
---         //脚本内容;
-host:web
 remote_user:root
 tasks:
 -name:cvc Pcre-devel and Zlib LIB Install.
  yum:name=pcre-devel,pcre,zlib-devel,gcc-c++ state=installed
 -name:cvc Nginx WEB Server Install Process.
 shell:cd /tmp;rm -rf nginx-1.15.0.tar.gz;wget
http://nginx.org/download/nginx-1.15.0.tar.gz;tar xzf nginx-1.15.0.tar.gz;cd nginx-1.15.0;./configure --prefix=/usr/local/nginx;make,make isntall

[root@localhost ~]# ansible-playbook nginx_install.yam1 -vvv   //执行脚本在三台主机上部署nginx

Вопрос первый:

[root@localhost ansible]# ansible web -m ping
The authenticity of host '192.168.1.71 (192.168.1.71)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.72 (192.168.1.72)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.70 (192.168.1.70)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)?
错误提示:没有和远程主机配置秘钥对,可以使用ssh-keygen配置秘钥对
解决方案:免秘钥的
[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub   -p 22 [email protected]  //将秘钥对拷贝到目标主机。
[root@localhost ~]# ssh 192.168.1.70        //测试目标配置是否成功
Last login: Sun Nov  1 06:29:29 2020 from 192.168.1.101
[root@cb687a8072d1 ~]# ip addr

рекомендация

отblog.51cto.com/15005403/2552215
рекомендация