Домой Учебники по Linux и Unix Что такое Ansible pre_tasks? Как обновить ОС, установить Python и установить JRE...

Что такое Ansible pre_tasks? Как обновить ОС, установить Python и установить JRE на удаленном хосте [Linux]?

768
0

Что такое pre_tasks в Ansible?

pre_tasks это задача, которую Ansible выполняет перед выполнением любого tasks упоминается в .yml файл.

Рассмотрим этот сценарий. Вы подготовили новый экземпляр на Amazon EC2 облако или Google Cloud , Первое, что вам нужно сделать, это установить обновления ОС . Затем установите последнюю версию Python, установите Java и так далее.

После того как все вышеперечисленные предварительные задачи выполнены, вам необходимо скопировать ваше приложение и запустить эти приложения. Перед копированием зависимостей приложения очень обязательно установить все основные двоичные файлы.

В этом уроке мы рассмотрим все детали того, как выполнять предварительные задачи с использованием Ansible. pre_task тег.

Мы будем следовать сценарию ниже в этом руководстве:

  1. создать файл crunchify-hosts файл и добавьте IP, на котором мы будем выполнять pre_task.
  2. создать файл crunchify-install-python-java.yml который представляет собой сборник пьес.
    • pre_task: установить python-simplejson
    • pre_task: установить python-минимальный
    • pre_task: установить обновление системы
    • pre_task: установить последнюю версию JRE
  3. Получить версию Python
  4. Получить версию Java
  5. Распечатать все результаты отладки
  6. запустите команду 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 $ ansibleplaybook я , / crunchifyхосты crunchifyустановитьpythonjava . 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   

Вот и все.

ЧИТАТЬ ТАКЖЕ:  Как изменить версию Java / JDK по умолчанию и ClassPath в Linux, используя .bash_profile?

Как видите, в этом уроке мы устанавливаем обновления Python, Java и системы на удаленном хосте. Также вернул результат обратно в окно терминала Mac .

Что дальше?

Попробуйте проверить учебник о том, как скопировать файл, каталог или скрипт с локального хоста на удаленный хост .

Что такое Ansible pre_tasks? Как обновить ОС, установить Python и установить JRE на удаленном хосте [Linux]?

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь