Ansible: apt : update_cache = yesλŠ” ansible 1.3μ—μ„œ μ‹€νŒ¨ν•©λ‹ˆλ‹€ (?)

에 λ§Œλ“  2013λ…„ 09μ›” 17일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: ansible/ansible

1.3μ—μ„œ μ‹€ν–‰ν•  λ•Œ μƒˆλ‘œμš΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

apt: update_cache=yes:

μˆ˜ν™•λŸ‰

msg: Failed to lock apt for exclusive operation

κ·ΈλŸ¬λ‚˜ λ…Έλ“œμ—μ„œ sudo apt-get updateλ₯Ό μ‹€ν–‰ν•  수 있으며 1.3으둜 μ—…κ·Έλ ˆμ΄λ“œν•˜κΈ° 전에 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. 두 개 μ΄μƒμ˜ λ…Έλ“œμ—μ„œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

ansible 1.2.3으둜 되 돌렸고 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

메일 λ§λ¦¬μŠ€νŠΈμ—μ„œ μΌλΆ€λŠ” sudoκ°€ ν˜ΈμΆœλ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ΄λΌκ³  μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€.

μ œμ–΄λ˜λŠ” λ…Έλ“œμ—μ„œ Ubuntu 12.04λ₯Ό μ‹€ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

역할을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ (1.3의 λ³€κ²½ 사항에 λŒ€ν•΄ μ—…λ°μ΄νŠΈλ˜μ§€ μ•ŠμŒ).

μ΅œμƒμœ„ μˆ˜μ€€ node.yml νŒŒμΌμ€ 역할을 μ •μ˜ν•©λ‹ˆλ‹€.

- name: apply common configuration to all nodes
  hosts: all
#  connection: fireball

  roles:
    - common

νŠΉμ • 체인의 μ–΄λ–€ 것도 sudoλ₯Ό ν˜ΈμΆœν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 이것은 ν™•μ‹€νžˆ 잘λͺ»λœ κ²ƒμž…λ‹ˆλ‹€. 1.3 버전 이전에 μž‘λ™ ν•œ 이유λ₯Ό 이해할 수 μ—†μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ κ³³μ—μ„œλŠ” ν•„μš”ν•  λ•Œ νŠΉλ³„νžˆ sudoλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

1.3μ—μ„œλŠ” λ‘€λ‹Ή sudoλ₯Ό 더 μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ‘°μ‚¬ν•΄μ•Όν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

Ubuntu 16.04

Ubuntu 16.04 μ‚¬μš©μžμ˜ 경우 (15.04μ—μ„œλ„ λ°œμƒν•  수 μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ) UbuntuλŠ” 기본적으둜 unattended-upgrade ν™œμ„±ν™” 된 μƒνƒœλ‘œ μ œκ³΅λ©λ‹ˆλ‹€. @bcocaμ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ μ •κΈ°μ μœΌλ‘œ λ³΄μ•ˆ μ—…λ°μ΄νŠΈλ₯Ό ν™•μΈν•©λ‹ˆλ‹€ (보톡 맀일). λ”°λΌμ„œ 해결책은 APTλ₯Ό ν„°μΉ˜ν•˜κΈ° 전에 μž‘μ—…μ„ μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

- name: kill automatic updating script, if any
  command: pkill --full /usr/bin/unattended-upgrade
  become: true
  register: kill_result
  failed_when: kill_result.rc > 1 # rc == 1 if the script is inactive
  changed_when: kill_result.rc == 0

λ‚˜μ€‘μ— μ‹œμŠ€ν…œμ—μ„œ 슀크립트λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ―€λ‘œ μ•ˆμ „ν•΄μ•Όν•©λ‹ˆλ‹€.

λͺ¨λ“  18 λŒ“κΈ€

-K둜 ansible-playbook을 μ–΄λ–»κ²Œ ν˜ΈμΆœν•©λ‹ˆκΉŒ? 1.3μ—μ„œλŠ” -K ν”Œλž˜κ·Έκ°€ νƒœμŠ€ν¬κ°€ sudoλ₯Ό λ‚΄μž¬μ μœΌλ‘œ μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ sudoλ₯Ό λͺ…μ‹œ 적으둜 μ§€μ •ν•΄μ•Όν•œλ‹€λŠ” λ³€κ²½ 사항이 μžˆμŠ΅λ‹ˆλ‹€.

예, λŒ€λΆ€λΆ„μ˜ μž₯μ†Œμ—μ„œ -Kλ₯Ό μ‚¬μš©ν•˜κ³  sudoλ₯Ό λͺ…μ‹œ 적으둜 μ‚¬μš©ν–ˆμ§€λ§Œ
이 νŠΉμ •ν•œ 경우. κ·Έλž˜μ„œ 그것은 μ•„λ§ˆλ„ isseμž…λ‹ˆλ‹€.

맀우 μ •μ€‘ν•˜κ²Œ,

Dan CaJacob

2013 λ…„ 9 μ›” 17 일 ν™”μš”μΌ μ˜€ν›„ 4:23, James Cammarata
[email protected] μž‘μ„± :

-K둜 ansible-playbook을 μ–΄λ–»κ²Œ ν˜ΈμΆœν•©λ‹ˆκΉŒ? 1.3μ—μ„œ λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
sudoλŠ” -K ν”Œλž˜κ·Έλ‘œ λͺ…μ‹œ 적으둜 μ§€μ •λ˜μ–΄μ•Ό μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
μ•”μ‹œ 적으둜 sudoλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ Gi tHubμ—μ„œ 확인 ν•˜μ„Έμš”.
.

ν™•μΈν•˜κ² μŠ΅λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ μ’…λ£Œν•˜κ² μŠ΅λ‹ˆλ‹€. 감사!

ν•  κ²ƒμž…λ‹ˆλ‹€. 감사!

맀우 μ •μ€‘ν•˜κ²Œ,

Dan CaJacob

2013 λ…„ 9 μ›” 17 일 ν™”μš”μΌ μ˜€ν›„ 4:27, James Cammarata
[email protected] μž‘μ„± :

ν™•μΈν•˜κ² μŠ΅λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ μ’…λ£Œν•˜κ² μŠ΅λ‹ˆλ‹€. 감사!

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ Gi tHubμ—μ„œ 확인 ν•˜μ„Έμš”.
.

이것에 λŒ€ν•œ 후속 μ‘°μΉ˜κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

κ³„μ†ν•΄μ„œμ΄ 문제λ₯Ό λ‹«μœΌμ‹­μ‹œμ˜€. κ·Έλž˜λ„ λ¬Έμ œκ°€ 있으면 μ•Œλ €μ£Όμ‹­μ‹œμ˜€. 감사!

λ‚˜λŠ” λ˜ν•œμ΄ λ¬Έμ œμ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 1.3.2λ₯Ό μ‹€ν–‰ν•˜μ§€λ§Œ 이전 버전 μ°Έμ‘°κ°€ μ—†μŠ΅λ‹ˆλ‹€.

-KIλ₯Ό μ‚¬μš©ν•  λ•Œ 또 λ‹€λ₯Έ μ‹€νŒ¨κ°€ λ°œμƒν•©λ‹ˆλ‹€. sudo μ•”ν˜Έ ν”„λ‘¬ν”„νŠΈλ₯Ό κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆ ssh 연결이 λ‹«ν˜”μŠ΅λ‹ˆλ‹€.

κ²°κ΅­ λ‚˜λŠ” 이것을 λŒ€ν™” ν˜• λͺ¨λ“œκ°€ μ•„λ‹Œ μ‹€ν–‰ν•΄μ•Όν•˜λ―€λ‘œ -Kκ°€ μ΅œμ’… 닡이 될 수 μ—†μŠ΅λ‹ˆλ‹€.

μžμ„Έν•œ 정보 : μˆ˜λ™ μ‹€ν–‰ : host1. ***λŠ” μˆ˜μ • 된 FQDNμž…λ‹ˆλ‹€.

vagrant @ ansible-head : ~ $ sudo -u vagrant ansible-playbook -i 인벀토리 ubuntu-apache2.yaml

PLAY [μ›Ή μ„œλ²„] * * * * * * * * * * * * * * * * * * * *

μˆ˜μ§‘ 사싀 * * * * * * * * * * * * * * * * * * * *
확인 : [host1. **]

μž‘μ—… : [μ μ ˆν•œ μΊμ‹œ μ—…λ°μ΄νŠΈ] * * * * * * * * * * * * * * * *
μ‹€νŒ¨ : [host1. **] => { "μ‹€νŒ¨": true}
msg : 독점 μž‘μ—…μ„ μœ„ν•΄ aptλ₯Ό μž κ·Έμ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

치λͺ…적 : λͺ¨λ“  ν˜ΈμŠ€νŠΈκ°€ 이미 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. 쀑단 쀑

RECAP을 PLAY * * * * * * * * * * * * * * * * * * * * * *
λ‹€μ‹œ μ‹œλ„ν•˜λ €λ©΄ λ‹€μŒμ„ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. --limit @ / home / vagrant / ubuntu-apache2.yaml.retry

host1. *** : ok = 1 변경됨 = 0 μ—°κ²°ν•  수 μ—†μŒ = 0 μ‹€νŒ¨ = 1

ansible get을 μˆ˜λ™μœΌλ‘œ 싀행해도 λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

vagrant @ ansible-head : ~ $ sudo -u vagrant ansible μ›Ή μ„œλ²„ -i inventory -m apt -a "update_cache = yes
"
host1. *** | μ‹€νŒ¨ >> {
"μ‹€νŒ¨": μ°Έ,
"msg": "독점 μž‘μ—…μ— μ ν•©ν•œ 잠금 μ‹€νŒ¨"
}

@Ravenwater λ‹€λ₯Έ 문제인 것 κ°™μŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ github 문제λ₯Ό μ—΄ β€‹β€‹μˆ˜ μžˆμŠ΅λ‹ˆκΉŒ? λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ κ·Έ λ¬Έμ œμ— λΆ€λ”ͺ ν˜”λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ 메일 λ§λ¦¬μŠ€νŠΈμ— λ¬Όμ–΄λ³Ό μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 감사!

ansible 1.3.4와 λΉ„μŠ·ν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ μ‚¬μš©ν•˜λŠ” 경우 :

apt: update_cache=yes:

λ™μΌν•œ 였λ₯˜ λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

msg: Failed to lock apt for exclusive operation

λ˜ν•œ update_cache μ˜΅μ…˜μœΌλ‘œ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•  λ•Œ :

apt: pkg=openjdk-6-jre-headless state=installed update_cache=yes cache_valid_time=604800

μœ μ‚¬ν•œ 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

msg: 'apt-get install 'openjdk-6-jre-headless' ' failed: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

였λ₯˜κ°€ κ°„ν—μ μœΌλ‘œ λ‚˜νƒ€λ‚©λ‹ˆλ‹€. μ‹€μ œλ‘œ ubuntu 12.04와 ν•¨κ»˜ 50 개의 EC2 가상 λ¨Έμ‹  μ„ΈνŠΈλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€ (λͺ¨λ‘ λ™μΌν•œ κΈ°λ³Έ 이미지 ami-e50e888c μ‚¬μš©). ν…ŒμŠ€νŠΈμ— 따라 5 ~ 20 번 였λ₯˜κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

"sudo : true"κ°€ ν”Œλ ˆμ΄ 뢁에 μ§€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

이것은 일반적으둜 λ©”μ‹œμ§€κ°€ λ§ν•˜λŠ” 것과 λ˜‘κ°™μŠ΅λ‹ˆλ‹€.
dpkg db λ˜λŠ” λ‹€λ₯Έ μ‚¬λžŒ (λ˜λŠ” λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μžˆλŠ” μ‚¬μš©μž)을 μž κΈ€ μˆ˜μžˆλŠ” κΆŒν•œ
μž κ²ΌμŠ΅λ‹ˆλ‹€ (쀑간에 + Cλ₯Ό μ œμ–΄ν•˜κ³  μ‹œλ„ν•˜λ©΄ λ‚˜μ—κ²Œ λ°œμƒν•©λ‹ˆλ‹€.
λ‹€μ‹œ).

예. κ·ΈλŸ¬λ‚˜ μΌλΆ€μ—μ„œλŠ” λ™μΌν•œ ꡬ성을 μ‚¬μš©ν•˜λŠ” λ™μΌν•œ OS의 50 개의 VMκ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ μž‘λ™ν•˜κ³  λ‹€λ₯Έ μΌλΆ€μ—μ„œλŠ” μ‹€νŒ¨ν•©λ‹ˆλ‹€. λ˜ν•œ ν”Œλ ˆμ΄ 뢁을 3 ~ 4 번 재 μ‹œλ„ν•˜λ©΄ λ§ˆμΉ¨λ‚΄ λͺ¨λ“  λ…Έλ“œμ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

@micafer λ‹€λ₯Έ μ‚¬μš©μž / ν”„λ‘œμ„ΈμŠ€κ°€ ν•΄λ‹Ή μ»΄ν“¨ν„°μ—μ„œ λ™μ‹œμ— aptλ₯Ό 호좜 ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

이 ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ νŠΉλ³„νžˆ 생성 된 50 개의 VM μ„ΈνŠΈλ‘œ ν…ŒμŠ€νŠΈ 쀑이며 λͺ¨λ‘μ—μ„œ μœ μΌν•œ μ‚¬μš©μžμž…λ‹ˆλ‹€.
μš°λΆ„νˆ¬μ— apt λͺ…령을 μ‚¬μš©ν•˜λŠ” λ‚΄λΆ€ ν”„λ‘œμ„ΈμŠ€ (cron λ˜λŠ” 이와 μœ μ‚¬ν•œ)κ°€ μžˆλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

μš°λΆ„νˆ¬λŠ” 맀일 μΊμ‹œ μ—…λ°μ΄νŠΈλ₯Ό 크둠 ν™”ν–ˆμŠ΅λ‹ˆλ‹€.
무인 μ„€μΉ˜λ₯Όν–ˆλ‹€λ©΄ '천λ‘₯ 무리'문제λ₯Ό μΌμœΌν‚€κ³ 
ν™œμ„±ν™”ν•˜λ©΄ μžλ™ λ³΄μ•ˆ μ—…λ°μ΄νŠΈλ„ λ°›κ²Œλ©λ‹ˆλ‹€.
이.

μ‹€μƒν™œμ—μ„œ 이런 일이 λ°œμƒν•  μˆ˜μžˆλŠ” μ‹¬κ°ν•œ κΈ°νšŒκ°€ 있고 ansible이 λ¬Έμ œμ— λŒ€ν•œ 해결책을 μ œκ³΅ν•΄μ•Όν•˜λ―€λ‘œμ΄ 문제λ₯Ό λ‹€μ‹œ μ—¬λŠ” 것에 νˆ¬ν‘œν•˜κ² μŠ΅λ‹ˆλ‹€.

Ubuntu 16.04

Ubuntu 16.04 μ‚¬μš©μžμ˜ 경우 (15.04μ—μ„œλ„ λ°œμƒν•  수 μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ) UbuntuλŠ” 기본적으둜 unattended-upgrade ν™œμ„±ν™” 된 μƒνƒœλ‘œ μ œκ³΅λ©λ‹ˆλ‹€. @bcocaμ—μ„œ μ–ΈκΈ‰ν–ˆλ“―μ΄ μ •κΈ°μ μœΌλ‘œ λ³΄μ•ˆ μ—…λ°μ΄νŠΈλ₯Ό ν™•μΈν•©λ‹ˆλ‹€ (보톡 맀일). λ”°λΌμ„œ 해결책은 APTλ₯Ό ν„°μΉ˜ν•˜κΈ° 전에 μž‘μ—…μ„ μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

- name: kill automatic updating script, if any
  command: pkill --full /usr/bin/unattended-upgrade
  become: true
  register: kill_result
  failed_when: kill_result.rc > 1 # rc == 1 if the script is inactive
  changed_when: kill_result.rc == 0

λ‚˜μ€‘μ— μ‹œμŠ€ν…œμ—μ„œ 슀크립트λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ―€λ‘œ μ•ˆμ „ν•΄μ•Όν•©λ‹ˆλ‹€.

λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 의견 만 있으면 μœ„μ˜ λͺ…령을 μ‚¬μš©ν•΄λ„ 잠금이 κ·ΈλŒ€λ‘œ μœ μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ EC2에 배포 ν•  λ•Œ unattended-upgrades λ₯Ό μˆ˜λ™μœΌλ‘œ μ œκ±°ν•˜μ—¬ κΈ°λ³Έ 이미지λ₯Ό μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰