μλ
,
openshift 4.6.13μ awx-operatorλ₯Ό μ€μΉνμ΅λλ€. "μΈμ€ν΄μ€ κ·Έλ£Ή"μ μ‘μΈμ€νλ €κ³ ν λ λΈλΌμ°μ μ μ€λ₯κ° λ°μν©λλ€.
λ¬Έμ κ° λ°μνμ΅λλ€ ...
μ΄ μ½ν
μΈ λ₯Ό λ‘λνλ μ€μ μ€λ₯κ° λ°μνμ΅λλ€. λμ보λλ‘ λμκ°λλ€.
μΈλΆμ 보 >>>μ΅μ
/api/v2/instance_groups/ 500μλ² μ€λ₯κ° λ°μνμ΅λλ€.
"awx" ν¬λμμ λ‘κ·Έλ₯Ό νμΈνλ©΄ μ€λ₯κ° λ°μν©λλ€.
2021-04-30 04:42:58,023 INFO [8da8604176834ab29675faf0f1f4ea61] awx.analytics.performance μμ²:
10.131.2.1 - - [30/Apr/2021:04:42:58 +0000] "GET /api/v2/config/ HTTP/1.1" 200 2002 "http://awx.apps.ocp.domain/" " Mozilla/5.0(Windows NT 10.0, Win64, x64) AppleWebKit/537.36(Geckoμ κ°μ KHTML) Chrome/90.0.4430.85 Safari/537.36" "172.20.27.100"
[pid: 20212|app: 0|req: 481/8212] 10.131.2.1 () {64 vars in 2951 bytes} [Fri Apr 30 04:42:57 2021] GET /api/v2/config/ => μμ±λ 2002 217λ°λ¦¬μ΄μ λ°μ΄νΈ(HTTP/1.1 200) 584λ°μ΄νΈμ ν€λ 14κ°(μ½μ΄ 0μ μ€μμΉ 1κ°)
2021-04-30 04:42:58,088 INFO [6901c7e48f1a4054bf60ae8d0740f9d7] awx.analytics.performance μμ²:
10.131.2.1 - - [30/Apr/2021:04:42:58 +0000] "GET /api/v2/instance_groups/?order_by=name&page=1&page_size=20 HTTP/1.1" 200 737 "http://awx. apps.ocp.domain/" "Mozilla/5.0(Windows NT 10.0, Win64, x64) AppleWebKit/537.36(Geckoμ κ°μ KHTML) Chrome/90.0.4430.85 Safari/537.36" "172.20.27.100"
[pid: 25187|app: 0|req: 143/8213] 10.131.2.1 () {64 vars in 3037 bytes} [Fri Apr 30 04:42:57 2021] GET /api/v2/instance_groups/?order_by= =1&page_size=20 => 290λ°λ¦¬μ΄μ 737λ°μ΄νΈ μμ±(HTTP/1.1 200) 575λ°μ΄νΈμ 14κ°μ ν€λ(μ½μ΄ 0μμ 1κ° μ ν)
2021-04-30 04:42:58,322 INFO [3a1669b00856485e9d3f4a1527995ef2] awx.analytics.performance μμ²:
[pid: 17827|app: 0|req: 783/8214] 10.131.2.1 () {64 vars in 2942 bytes} [Fri Apr 30 04:42:57 2021] GET /api/v2/me/ => μμ±λ 955 457λ°λ¦¬μ΄μ λ°μ΄νΈ(HTTP/1.1 200) 569λ°μ΄νΈμ 14κ° ν€λ(μ½μ΄ 0μ μ€μμΉ 1κ°)
10.131.2.1 - - [30/Apr/2021:04:42:58 +0000] "GET /api/v2/me/ HTTP/1.1" 200 955 " http://awx.apps.ocp.domain/ " " Mozilla/5.0(Windows NT 10.0, Win64, x64) AppleWebKit/537.36(Geckoμ κ°μ KHTML) Chrome/90.0.4430.85 Safari/537.36" "172.20.27.100"
2021-04-30 04:42:58,368 μ€λ₯ [9665f945a9954d26be025d98d85c0ea6] django.request λ΄λΆ μλ² μ€λ₯: /api/v2/instance_groups/
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/exception.py", 34ν, λ΄λΆ
μλ΅ = get_response(μμ²)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/base.py", 115ν, _get_response
μλ΅ = self.process_exception_by_middleware(e, μμ²)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/base.py", 113ν, _get_response
μλ΅ = wrap_callback(μμ², callback_args, * callback_kwargs)
νμΌ "/usr/lib64/python3.8/contextlib.py", 75ν, λ΄λΆ
λ°ν ν¨μ( μΈμ, * kwds)
Wrapped_viewμ νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/views/decorators/csrf.py", 54ν
return view_func( μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/views/generic/base.py", 71ν, 보기
return self.dispatch(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/generics.py", 324ν, λ°μ‘ μ€
return super(APIView, self).dispatch(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 509ν, λ°μ‘ μ€
μλ΅ = self.handle_exception(exc)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 469ν, νΈλ€_μμΈ
self.raise_uncaught_exception(exc)
"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py" νμΌ, 480ν, raise_uncaught_exception
excλ₯Ό μ¬λ¦¬λ€
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 506ν, λ°μ‘ μ€
μλ΅ = νΈλ€λ¬(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 520ν, μ΅μ
λ°μ΄ν° = self.metadata_class().determine_metadata(μμ², μ체)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/metadata.py", 245ν, modify_metadata
λ©νλ°μ΄ν° = super(λ©νλ°μ΄ν°, μ체).determine_metadata(μμ², 보기)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/metadata.py", 68ν, modify_metadata
action = self.determine_actions(μμ², 보기)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/metadata.py", 209ν, modify_actions
λ©ν['κΈ°λ³Έ'] = AWXReceptorJob().pod_definition
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/main/tasks.py", 3081ν, pod_definition
default_pod_spec = get_default_pod_spec()
get_default_pod_specμμ νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/main/utils/execution_environments.py", 21ν
"μ΄λ―Έμ§": get_default_execution_environment().image,
AttributeError: 'NoneType' κ°μ²΄μ 'μ΄λ―Έμ§' μμ±μ΄ μμ΅λλ€.
2021-04-30 04:42:58,368 μ€λ₯ [9665f945a9954d26be025d98d85c0ea6] django.request λ΄λΆ μλ² μ€λ₯: /api/v2/instance_groups/
μμΆμ (κ°μ₯ μ΅κ·Ό νΈμΆ λ§μ§λ§):
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/exception.py", 34ν, λ΄λΆ
μλ΅ = get_response(μμ²)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/base.py", 115ν, _get_response
μλ΅ = self.process_exception_by_middleware(e, μμ²)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/core/handlers/base.py", 113ν, _get_response
μλ΅ = wrap_callback(μμ², callback_args, * callback_kwargs)
νμΌ "/usr/lib64/python3.8/contextlib.py", 75ν, λ΄λΆ
λ°ν ν¨μ( μΈμ, * kwds)
Wrapped_viewμ νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/views/decorators/csrf.py", 54ν
return view_func( μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/django/views/generic/base.py", 71ν, 보기
return self.dispatch(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/generics.py", 324ν, λ°μ‘ μ€
return super(APIView, self).dispatch(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 509ν, λ°μ‘ μ€
μλ΅ = self.handle_exception(exc)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 469ν, νΈλ€_μμΈ
self.raise_uncaught_exception(exc)
"/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py" νμΌ, 480ν, raise_uncaught_exception
excλ₯Ό μ¬λ¦¬λ€
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 506ν, λ°μ‘ μ€
μλ΅ = νΈλ€λ¬(μμ², μΈμ, * kwargs)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/views.py", 520ν, μ΅μ
λ°μ΄ν° = self.metadata_class().determine_metadata(μμ², μ체)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/metadata.py", 245ν, modify_metadata
λ©νλ°μ΄ν° = super(λ©νλ°μ΄ν°, μ체).determine_metadata(μμ², 보기)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/rest_framework/metadata.py", 68ν, modify_metadata
action = self.determine_actions(μμ², 보기)
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/api/metadata.py", 209ν, modify_actions
λ©ν['κΈ°λ³Έ'] = AWXReceptorJob().pod_definition
νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/main/tasks.py", 3081ν, pod_definition
default_pod_spec = get_default_pod_spec()
get_default_pod_specμμ νμΌ "/var/lib/awx/venv/awx/lib64/python3.8/site-packages/awx/main/utils/execution_environments.py", 21ν
"μ΄λ―Έμ§": get_default_execution_environment().image,
AttributeError: 'NoneType' κ°μ²΄μ 'μ΄λ―Έμ§' μμ±μ΄ μμ΅λλ€.
2021-04-30 04:42:58,372 INFO [9665f945a9954d26be025d98d85c0ea6] awx.analytics.performance μμ²:
[pid: 15951|μ±: 0|req: 683/8215] 10.131.2.1 () {66 vars in 3017 bytes} [Fri Apr 30 04:42:57 2021] OPTIONS /api/v2/instance_41s/ => generated 570λ°λ¦¬μ΄μ λ°μ΄νΈ(HTTP/1.1 500) 309λ°μ΄νΈμ ν€λ 8κ°(μ½μ΄ 0μ μ€μμΉ 1κ°)
10.131.2.1 - - [30/Apr/2021:04:42:58 +0000] "μ΅μ
/api/v2/instance_groups/ HTTP/1.1" 500 41 " http://awx.apps.ocp.domain/ " " Mozilla/5.0(Windows NT 10.0, Win64, x64) AppleWebKit/537.36(Geckoμ κ°μ KHTML) Chrome/90.0.4430.85 Safari/537.36" "172.20.27.100"
κ²°κ³Ό 2
OKREADY
μ λ μ΄κ²μ κ²½ννκ³ μμ΅λλ€.
μ¬κΈ°μ 2κ°μ λ²κ·Έκ° μλ€κ³ μκ°ν©λλ€. 첫 λ²μ§Έλ μ½λκ° κ΅¬μ± μ΄λ¦ DEFAULT_EXECUTION_ENVIRONMENT
μ μ°Ύκ³ μμ§λ§ awx-operatorκ° DEFAULT_EXECUTION_ENVIRONMENTS
λ₯Ό μμ±νλ€λ κ²μ
λλ€.
https://github.com/ansible/awx/blob/f5c176701b0551e179bb4ef663b57fd3a6ba6f0a/awx/main/utils/execution_environments.py#L7
https://github.com/ansible/awx-operator/blob/8656ee1a1dc9593b2fe9615b390aaad3f852a4f8/roles/installer/templates/execution_environments.py.j2#L1
λ λ²μ§Έλ get_default_execution_environment()
κ° None
$λ₯Ό λ°νν λ λ λμ μ ν/μ€λ₯ κ²μ¬κ° νμνλ€λ κ²μ
λλ€.
https://github.com/ansible/awx/blob/f5c176701b0551e179bb4ef663b57fd3a6ba6f0a/awx/main/utils/execution_environments.py#L21
μ΄κ²μ μ΄μμ μ΄μ§λ μμ§λ§ DBμμ μ§μ managed_by_tower = 't'
λ₯Ό μ€μ νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
awx=> update main_executionenvironment set managed_by_tower = 't' where id = 1;
λμΌν λ¬Έμ κ° μμκ³ μ¬κΈ° λλ awx ghμμ λ¬Έμ λ₯Ό λ°κ²¬νμ΅λλ€.
tower_create_preload_data:
μ¬μ€μ΄ νμν©λλ€.
κ³Όκ±°μλ λ°λͺ¨ ν νλ¦Ώμ μμ±ν κ²μ΄κΈ° λλ¬Έμ falseλ‘ μ μ§νμ§λ§ λ μ΄μ κ·Έλ κ² νμ§ μλ κ² κ°μ΅λλ€.
@dacosta89 κ°μ¬ν©λλ€!
@endriu0 μ΄λμ μ΄λ»κ² "true"λ‘ λ³κ²½ν μ μμ΅λκΉ? κ°μ¬ ν΄μ!
@eniomachado λ μ€μΉ λ°©λ²μ λ°λΌ λ€λ₯΄μ§λ§ μ°μ°μλ₯Ό μ€μΉν λ€μ μ¬μ μ μμ΄ awx yaml νμΌμμ kubectlμ μ¬μ©νλ€κ³ κ°μ ν©λλ€. κ·Έλ λ€λ©΄ my-awx.yamlμ μ¬μ μλμ μ΄ μ€μ μΆκ°νκ³ λ€μ μ μ©ν΄μΌ ν©λλ€.
tower_create_preload_data: μ°Έ
κ·Έλ° λ€μ kubectl apply -f my-awx.yaml
my-awx.yaml νμΌμ μ:
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: funhouse
spec:
...
tower_create_preload_data: true
λ¬Έμ λ°κ²¬: https://github.com/ansible/awx/issues/9851
μλ νμΈμ @endriu0 μ΄ μ루μ μ μ μκ² ν¨κ³Όμ μ λλ€. λμμ μ£Όμ μ κ°μ¬ν©λλ€.
@dacosta89λ μ΄ "tower_create_preload_data: true"μ λν΄ @endriu0 μ΄ λ§ν λ΄μ©μ΄ λ λμ μμ μ΄ λ κ²μ λλ€.
μλ λͺ¨λ. https://github.com/ansible/awx/issues/9851 μμ μ΄λ₯Ό μΆμ ν΄ λ³΄κ² μ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ λ μ΄κ²μ κ²½ννκ³ μμ΅λλ€.