Содержание
Что такое pre_tasks в Ansible?
pre_tasks это задача, которую Ansible выполняет перед выполнением любого tasks упоминается в .yml файл.
Рассмотрим этот сценарий. Вы подготовили новый экземпляр на Amazon EC2 облако или Google Cloud , Первое, что вам нужно сделать, это установить обновления ОС . Затем установите последнюю версию Python, установите Java и так далее.
После того как все вышеперечисленные предварительные задачи выполнены, вам необходимо скопировать ваше приложение и запустить эти приложения. Перед копированием зависимостей приложения очень обязательно установить все основные двоичные файлы.
В этом уроке мы рассмотрим все детали того, как выполнять предварительные задачи с использованием Ansible. pre_task тег.
Мы будем следовать сценарию ниже в этом руководстве:
- создать файл
crunchify-hostsфайл и добавьте IP, на котором мы будем выполнять pre_task. - создать файл
crunchify-install-python-java.ymlкоторый представляет собой сборник пьес. - Получить версию Python
- Получить версию Java
- Распечатать все результаты отладки
- запустите команду ansible-playbook -i ./crunchify-hosts crunchify-install-python-java.yml, которая выполнит все наши задачи
файл crunchify-hosts
|
1
2
3
4
5
6
7
8
9
10
|
[ местный ]
localhost ansible_connection = local ansible_python_interpreter = python
[ crunchify ]
13.58.187.197
[ crunchify : vars ]
ansible_ssh_user = ubuntu
ansible_ssh_private_key_file = / Users / crunchify / Документы / анзибль / crunchify. PEM
ansible_python_interpreter = / usr / bin / python3
|
Здесь, как вы видите, я использую crunchify.pem файл для пароля меньше аутентификации . Я могу просто подключиться к своему хосту без запроса пароля.
файл crunchify-install-python-java.yml
Мы используем register ключевое слово в Ansible для регистрации переменной. Он хранит возвращаемое значение raw задачи.
С помощью debug а также stdout_lines Вы можете распечатать результат в командной строке .
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
—
— хосты : crunchify
стать : да
pre_tasks :
— сырье : sudo apt — получить — у установить питон — simplejson
зарегистрироваться : py_simple_output
— сырье : sudo apt — получить — у установить Python — минимальный
зарегистрироваться : py_minimal_output
— сырье : sudo apt — получить обновление
зарегистрироваться : system_output
— сырье : sudo apt — получить установку — у по умолчанию — JRE
зарегистрироваться : java_output
задачи :
— отладка :
var = py_simple_output . stdout_lines
— отладка :
var = py_minimal_output . stdout_lines
— отладка :
var = system_output . stdout_lines
— отладка :
var = java_output . stdout_lines
— имя : получить версию Python
оболочка : питон — версия 2 > & 1
зарегистрироваться : py_output
— отладка :
var = py_output . stdout_lines
— имя : получить версию Java
оболочка : Джава — версия 2 > & 1
зарегистрироваться : java_output
— отладка :
var = java_output . stdout_lines
|
Команда запуска:
ansible-playbook -i ./crunchify-hosts crunchify-install-python-java.yml
Ansible Output:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
Баш1 . 2 $ ansible — playbook — я , / crunchify — хосты crunchify — установить — python — java . YML
ИГРАТЬ [ crunchify ] ************************************************** ************************************************** ***********************************************
ЗАДАЧА [ Сбор фактов ] ************************************************** ************************************************** *****************************************
оК: [ 13.58.187.197 ]
ЗАДАЧА [ сырой ] ************************************************** ************************************************** ************************************************** ***
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ сырой ] ************************************************** ************************************************** ************************************************** ***
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ сырой ] ************************************************** ************************************************** ************************************************** ***
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ сырой ] ************************************************** ************************************************** ************************************************** ***
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
py_simple_output.stdout_lines : [
,
Чтение списков пакетов … 0% ,
,
Чтение списков пакетов … 100% ,
,
Чтение списков пакетов … Готово ,
,
,
Построение дерева зависимостей … 0% ,
,
Построение дерева зависимостей … 50% ,
,
«Построение дерева зависимостей» ,
,
,
«Чтение информации о состоянии … 0%» ,
,
Чтение информации о состоянии … Готово ,
,
msgstr python-simplejson — это самая новая версия (3.13.2-1). ,
0 обновлено, 0 недавно установлено, 0 для удаления и 76 не обновлено.
]
}
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
py_minimal_output.stdout_lines : [
,
Чтение списков пакетов … 0% ,
,
Чтение списков пакетов … 100% ,
,
Чтение списков пакетов … Готово ,
,
,
Построение дерева зависимостей … 0% ,
,
Построение дерева зависимостей … 50% ,
,
«Построение дерева зависимостей» ,
,
,
«Чтение информации о состоянии … 0%» ,
,
Чтение информации о состоянии … Готово ,
,
msgstr python-minimal — это уже самая новая версия (2.7.15 ~ rc1-1). ,
0 обновлено, 0 недавно установлено, 0 для удаления и 76 не обновлено.
]
}
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
system_output.stdout_lines : [
,
0% [Рабочая] ,
,
Hit: 1 http://us-east-2.ec2.archive.ubuntu.com/ubuntu Bionic InRelease ,
,
0% [Соединение с security.ubuntu.com (91.189.88.162)] ,
,
Hit: 2 http://us-east-2.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease ,
,
,
«Получить: 3 http://us-east-2.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease [74,6 кБ]» ,
,
0% [Соединение с security.ubuntu.com (91.189.88.162)] ,
0% [1 InRelease gpgv 242 кБ] [Подключение к security.ubuntu.com (91.189.88.162) ,
,
0% [Соединение с security.ubuntu.com (91.189.88.162)] ,
0% [2 InRelease gpgv 88,7 кБ] [Подключение к security.ubuntu.com (91.189.88.162 ,
,
0% [Ожидание заголовков] ,
0% [3 InRelease gpgv 74,6 кБ] [Ожидание заголовков] ,
,
«Хит: 4 http://security.ubuntu.com/ubuntu bionic-security InRelease» ,
,
,
«0% [3 InRelease gpgv 74,6 кБ]» ,
,
0% [Рабочая] ,
«0% [4 InRelease gpgv 88,7 кБ]» ,
,
100% [Рабочая] ,
,
«Получено 74,6 кБ в 0 с (249 кБ / с)» ,
,
Чтение списков пакетов … 0% ,
,
Чтение списков пакетов … 5% ,
,
Чтение списков пакетов … 8% ,
,
Чтение списков пакетов … 53% ,
,
Чтение списков пакетов … 79% ,
,
Чтение списков пакетов … 99% ,
,
Чтение списков пакетов … Готово ,
«»
]
}
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
java_output.stdout_lines : [
,
Чтение списков пакетов … 0% ,
,
Чтение списков пакетов … 100% ,
,
Чтение списков пакетов … Готово ,
,
,
Построение дерева зависимостей … 0% ,
,
Построение дерева зависимостей … 50% ,
,
«Построение дерева зависимостей» ,
,
,
«Чтение информации о состоянии … 0%» ,
,
Чтение информации о состоянии … Готово ,
,
msgstr default-jre — это самая новая версия (2: 1.11-68ubuntu1 ~ 18.04.1). ,
0 обновлено, 0 недавно установлено, 0 для удаления и 76 не обновлено.
]
}
ЗАДАЧА [ получить версию Python ] ************************************************** ************************************************** **************************************
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
py_output.stdout_lines : [
Python 2.7.15rc1
]
}
ЗАДАЧА [ получить версию Java ] ************************************************** ************************************************** ****************************************
изменилось : [ 13.58.187.197 ]
ЗАДАЧА [ отладка ] ************************************************** ************************************************** ************************************************** *
оК: [ 13.58.187.197 ] = > {
java_output.stdout_lines : [
openjdk 11.0.2 2019-01-15 ,
Среда выполнения OpenJDK (сборка 11.0.2 + 9-Ubuntu-3ubuntu118.04.3) ,
«OpenJDK 64-битная серверная виртуальная машина (сборка 11.0.2 + 9-Ubuntu-3ubuntu118.04.3, смешанный режим, совместное использование)»
]
}
PLAY RECAP * *********************************************** ************************************************** ************************************************** *****
13.58.187.197 : хорошо = 13 изменилось = 6 недоступен = 0 не удалось = 0
|
Вот и все.
Как видите, в этом уроке мы устанавливаем обновления Python, Java и системы на удаленном хосте. Также вернул результат обратно в окно терминала Mac .
Что дальше?
Попробуйте проверить учебник о том, как скопировать файл, каталог или скрипт с локального хоста на удаленный хост .
0.00 (0%) 0 votes




