С помощью ansible можно выполнять пакетную настройку и пакетную установку программного обеспечения, что избавляет от утомительной и повторяющейся работы и повышает эффективность управления сервером.
В этой главе описывается, как использоватьansibleустановка и базовый функционал о ansible. Студентам, владеющим облачными серверами, рекомендуется изучитьansible
- Оригинальная ссылка:Используйте ansible для автоматизированной эксплуатации и обслуживания github
- Серия статей:Примечания по эксплуатации и обслуживанию сервера
Необходимость автоматизированных операций
Теперь у меня есть два облачных сервера, на каждом из которых установлены системы Centos. и он у меня установлен на обоих серверахtmux, для многооконного управления.
Однако в первые дни существования сервера может быть разного рода хаос, и систему нужно переустанавливать много раз, и каждый раз при переустановке системы ее нужно переустанавливать заново.tmux.
Это создает очень повторяющуюся вещь: установкаtmux.
Если установлен в Centostmuxможно использовать напрямуюyum install tmuxВот и все, но установка tmux тоже крайне тривиальная вещь.
По моим статьям из этой серииМультиплексирование окон и tmuxупоминается в одномtmuxшаги установки
- установить пакет зависимостей
- Загрузите исходный код на github, скомпилируйте и установите
- Загрузите файл конфигурации с github
Кроме того, с несколькими серверами и несколькими переустановками можно повторить описанные выше шаги установки N раз.
Таким образом, отражается смысл существования автоматизированной эксплуатации и обслуживания, он может напрямую использовать команду для завершения процесса установки всех серверов.
ansible установка и настройка
Ansible — это инструмент для автоматизированной работы и обслуживания, написанный на python. Прежде чем использовать ansible, вам необходимо понять следующие две концепции.
- Локальная среда: то есть ваш ПК, Mac или трамплин, вам необходимо установить ansible в локальной среде
- Удаленный сервер: он будет развертывать свои собственные службы и запускать приложения на удаленном сервере, и это также сервер, которым необходимо управлять. Нет необходимости устанавливать какое-либо приложение на удаленном сервере
Ansible работает по протоколу ssh, нужно только выполнить два условия
1. Установите ansible в локальной среде
На Mac напрямую черезbrew install ansibleдля завершения установки.
Если не Mac, вы можете обратиться кОфициальное руководство по установке
Тем не менее, большинство местных условийmacилиwindows
2. Иметь возможность локально подключаться к удаленному серверу по ssh
по конфигурации~/.ssh/configа такжеssh keyМожно добиться эффекта прямого подключения без пароля.Подробности см. в первой статье этой серии.Начальная конфигурация входа в облачный сервер
~/.ssh/configФайл выглядит следующим образом
Host shanyue
HostName 172.17.68.39
User root
Host shuifeng
HostName 172.17.68.40
User root
ansible inventory
по конфигурации~/.ssh/configПосле этого мы присвоили удаленному серверу псевдоним. В этот момент вы можете пройтиinventoryУправление группой.
ansibleПо умолчаниюinventoryФайл конфигурации/etc/ansible/hosts.
[prod]
shanyue
shuifeng
[dev]
proxy
jumper ansible_port=5555 ansible_host=192.0.2.50
Конфигурация объясняется следующим образом
- Всего серверов четыре, shanyue, shuifeng, proxy, jumper, все сервера сгруппированы
allВниз - Шаньюэ и Шуйфэн в группе
prodвниз, а прокси и перемычка вdevВниз - существует
inventoryтакже можно установить вhostname,portс псевдонимами, но рекомендуется установка в ssh-config
Простая специальная команда
ad-hocКоманда относится к выполнению команды на определенном наборе серверов. тогда как команда на самом деле относится кmodule, в то время как чаще всего используетсяmoduleдаping, чтобы проверить, нормально ли подключен сервер
Все модули могут ссылаться наansible modules
# 查看所有服务器是否能够正常连通
$ ansible all -m ping
shuifeng | SUCCESS => {
"changed": false,
"ping": "pong"
}
shanyue | SUCCESS => {
"changed": false,
"ping": "pong"
}
ansible playbook
ansible ad-hocКоманда, которую нужно выполнить, слишком проста и обычно используется для тестирования сервера и некоторых простых небольших операций. И некоторые сложные вещи, как упоминалось вышеtmuxустановка требует выполнения ряда сценариев.
ad-hocуказанный сервер для выполнения указанной команды,а такжеplaybookЭто указать сервер для выполнения ряда команд.
- hosts, чтобы указать сервер или группу серверов. как продукт
- роль, чтобы указать набор команд. Например, tmux, который легко использовать повторно.
- hosts: prod
roles:
- tmux
role
роль определяет серию команд илиtasks. каждыйtaskможно рассматривать какad-hoc,Зависит отansible moduleсочинение
Но когдаtaskВ процессе выполнения должны быть некоторые переменные и настройки конфигурационного файла, которые являются другими компонентами роли. Такие какdefaults,vars,filesа такжеtemplates.roleСтруктура файла организована следующим образом
site.yml
roles/
tmux/
tasks/
handlers/
files/
templates/
vars/
defaults/
meta/
Например, роль tmux делает следующееtasks
- установить пакет зависимостей
- Загрузите исходный код на github, скомпилируйте и установите
- Загрузите файл конфигурации с github
Файл конфигурации относится к моей конфигурации ansible:shfshanyue/ansible-op
- name: prepare
yum:
name: "{{item}}"
with_items:
- gcc
- automake
- libevent-devel
- ncurses-devel
- glibc-static
- name: install tmux
git:
repo: https://github.com/tmux/tmux.git
dest: ~/Documents/tmux
version: 2.8
- name: make tmux
shell: sh autogen.sh && ./configure && make
args:
chdir: ~/Documents/tmux/
- name: copy tmux
copy:
src: ~/Documents/tmux/tmux
dest: /usr/bin/tmux
remote_src: yes
mode: 0755
- name: clone config file
when: USE_ME
git:
repo: https://github.com/shfshanyue/tmux-config.git
dest: ~/Documents/tmux-config
- name: clone config file (from .tmux)
git:
repo: https://github.com/gpakosz/.tmux.git
dest: ~/Documents/tmux-config
when: not USE_ME
- name: copy config file (from .tmux)
copy:
src: ~/Documents/tmux-config/.tmux.conf.local
dest: ~/.tmux.conf.local
remote_src: yes
when: not USE_ME
- name: copy config file
copy:
src: ~/Documents/tmux-config/.tmux.conf
dest: ~/.tmux.conf
remote_src: yes
- name: delete tmux-config
file:
name: ~/Documents/tmux-config
state: absent
ansible-galaxy
которыйroleсклад.
Существует несколько высокочастотных развертываний повторно используемых сервисных компонентов, таких какdocker,redisд., может бытьansible-galaxyнайди не пиши самroleБеда.
Такие какansible-redis
$ ansible-galaxy install davidwittman.redis
резюме
ansibleХорошо подходит для пакетной настройки и управления программным обеспечением.Если у вас есть собственный сервер, настоятельно рекомендуется изучитьansible.
Добро пожаловать в публичный аккаунтГорная Луна Путешествие, я буду регулярно делиться некоторыми статьями о внешнем и внутреннем интерфейсе, эксплуатации и обслуживании, а также будут ежедневные обзоры и сводки о технологиях и жизни, добро пожаловать, чтобы обратить внимание на обмен