λ§€μ° μ½κ² λ§λ€ μ μκΈ° λλ¬Έμ μ΄κ²μ λμκ² λ§€μ° λμμ΄ λ κ²μ
λλ€.
μλ₯Ό λ€μ΄ λ΄ λͺ
λ Ήμ€μ μ¬μ©νμ¬ μ격 MySQL μλ²μ μ°κ²°νλ €λ©΄
MySQL ν΄λΌμ΄μΈνΈ.
λ€μκ³Ό κ°μ΄ "with" 컨ν μ€νΈ λ¬Έμ μ¬μ©ν μ μμ΅λλ€.
with tunnel(local=3307, remote=3306):
local('mysql --port=3007 --host=localhost' mydb < db/dbdump.sql')
μ΄λ κ² νλ©΄ mysql λ€ν νμΌμ μλ²μ μ
λ‘λν νμκ° μμ΅λλ€.
κ°μ Έμ€κΈ°λ₯Ό μ€νν μ μμ΅λλ€.
λ λ€λ₯Έ μμ© νλ‘κ·Έλ¨μ Cherokee μΉ μλ²λ₯Ό κ΄λ¦¬νκΈ° μν κ²μΌ μ μμ΅λλ€.
Cherokee μΉ κ΄λ¦¬μλ κΈ°λ³Έμ μΌλ‘ λ€μμ μννλ μλ²μμλ§ μ‘μΈμ€ν μ μμ΅λλ€.
μ€ν μ€μ
λλ€. λ°λΌμ ν°λλ§ν΄μΌ νλ κ΄λ¦¬μμ μ‘μΈμ€νλ €λ©΄
μλ²μ μ°κ²°νκ³ λ‘컬 ν¬νΈλ₯Ό μ¬μ©νμ¬ κ΄λ¦¬μ μΈν°νμ΄μ€μ μ‘μΈμ€ν©λλ€.
μ΄κ²μ λν μ΄ κΈ°λ₯μΌλ‘ λ¨μνλ μ μμ΅λλ€.
with tunnel(local=9090, remote=9090):
sudo('cherokee-admin')
prompt('Stop cherokee admin?')
μ΄ λ§μ§λ§ μ€μ μ λ ₯μ μ 곡νμ¬ ν°λμ΄ λ«ν λκΉμ§ ν°λμ μ΄λ¦° μνλ‘ μ μ§ν©λλ€.
μλ Taras Mankovski ( tarasm)κ° 2009λ 11μ 2μΌ μ€μ 9μ 30λΆ(λλΆ νμ€μ )μ μ μΆνμ΅λλ€.
Jeff Forcier ( bitprophet ) κ²μ:
(μ½λ λΈλ‘μ΄ λ€μ¬μ°κΈ°λλλ‘ μ€λͺ μμ :))
2009-11-02 09:35am EST
ν°λμ΄ λ°λμ κ²½μ°λ μ§μνλ€λ©΄ κ΅μ₯ν κ²μ λλ€. μ격μμ μμ λκΈ°νκ³ μ΄λ₯Ό localhost/λ€λ₯Έ λ‘컬μμ μ¬μ© κ°λ₯ν host:portλ‘ μ λ¬νλ κ²μ μλ―Έν©λλ€.
@munhitsu νμ§λ§ μ΄κ²μ΄ Fabricμ ꡬ체μ μΈ μ¬μ© μ¬λ‘μΈμ§λ μ λͺ¨λ₯΄κ² μ΅λλ€. μμΈν μλ €μ£Όμ€ μ μλμ?
μμλ°μ΄λ http/proxy μ‘μΈμ€κ° μλ DMZ μ€μ μ μμν΄ λ³΄μμμ€.
μ 체 λ°°ν¬λ ν¨λΈλ¦μ ν΅ν΄ μ΄λ£¨μ΄μ§λλ€.
μ΄λ¬ν κ²½μ° ν¨λΈλ¦μ μ¬μ©νμ¬ sshλ₯Ό ν΅ν΄ λ‘컬 νλ‘μλ₯Ό ν°λλ§νμ¬ DMZμμ λ°©κΈ νλ‘λΉμ λλλ νΈμ€νΈμ μΌμμ μΌλ‘ μ‘μΈμ€ν μ μμ΅λλ€. μ§κΈμ ν¨λΈλ¦μ΄ μ΄ ν°λμ "컨ν μ€νΈ" λ΄μμ μλνλλ‘ λ λ²μ§Έ μ½μμμ λ³λμ ssh ν°λμ μ΄κ³ μμ΅λλ€.
μ¬μ© μ:
with rev_tunnel(local=8080, remote=8080):
sudo("http_proxy='http://localhost:8080' apt-get install -y puppet")
μ’μ, κ·Έλμ λ΄κ° μΆμΈ‘νλ κ²μ μλΉν νμ€μ μΈ μ ν°λ μ€μ μ΄κ³ , λΉμ μ λ°λμ λ€μ: Fabricμ ν°λμ μ²λ¦¬νλ κ²κ³Ό μλ₯Ό λ€μ΄ local(ssh -R ...)
λ₯Ό μ€νν΄μΌ νλ κ²μ μ²λ¦¬νλ κ²μ
λλ€.
λλ μ΄κ²μ΄ μ§μ μΌλ‘ μ½μ΄μ λ€μ΄κ° κ°μΉκ° μλμ§μ λν΄ μλ€κ°λ€νμ§λ§, Fabricμμ μ μ ν μ§μμ νλ κ²μ μ λ§ μλ―Έκ° μμ΅λλ€. λ€λ₯Έ μ루μ
μ ν΄ν€(μ: ssh
λ₯Ό μ€ννλ μΌλΆ μ€λ λ λλ νμ νλ‘μΈμ€ -- μ΄ μμ
μ μ μννλ λ°©λ², Fabκ° μ’
λ£λ λ μ’
λ£νλμ§ νμΈ λ±)νκ³ μ¬μ© μ¬λ‘μ μ ν¨μ±μ νμΈν©λλ€(λ‘컬 곡μ μ€ννλ λμ μ격 λμ΄ μλ 리μμ€.)
μ£Όμ μ₯μ λ¬Όμ SSH λΌμ΄λΈλ¬λ¦¬κ° μμ§ μ΄κ²μ μ§μνλμ§ νμ ν μ μλ€λ κ²μ
λλ€. μ°λ¦¬λ κ·Έκ²μ μμλ΄μΌ νκ³ κ·Έλ μ§ μλ€λ©΄ λκ΅°κ° κ·Έκ²μ ꡬνν΄μΌ ν κ²μ
λλ€. (κ·Έλ¬λ μ΄λ μμ μΈκΈν ssh -R
ν΄κ²° λ°©λ²μ κ°ννλ κ²κ³Ό λΉκ΅νμ¬ ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ μ’μ μΆκ° κΈ°λ₯μ΄ λ κ²μ΄λΌκ³ μκ°ν©λλ€.)
νΈμ§: #38μ ꡬν λ° ν¨μΉ λ±μ λν΄ μ€λͺ ν©λλ€. μ€μ λ‘ μ΄κ²μ λ«κ³ ꡬν μ κ°λ₯ν κ²½μ° μ»¨ν μ€νΈ κ΄λ¦¬μλ‘ νΈλ¦¬κ±°ν μ μμ΄μΌ νλ€λ μ μ μ μνλ κ²μ΄ κ°μ₯ μ’μ΅λλ€.
μ°λ¦¬κ° 컨ν μ€νΈμ λ€μ΄κ°κ±°λ 컨ν μ€νΈλ₯Ό λ λκ±°λ λ λμ μ¬λ¬ μμ€μ 컨ν μ€νΈλ₯Ό ꡬννλλ‘ κ΅¬ννλ κ²μ΄ κΉλ€λ‘λ€λ λ° μ μ μΌλ‘ λμν©λλ€.
EDIT κ΄λ ¨: μ΄ κΈ°λ₯μ μ¬μ©νλ λ° λ κ°κΉμ΄ λ€κ°κ°λ κ²μ 무μμ΄λ μ’μ μκ°μ λλ€.
μ§κΈμ μΈλΆ μ¬νμ μ μ§νκΈ° μν΄ μ΄κ²μ μ΄μ΄ λ‘λλ€. 1.4μ ν λΉνμ§λ§ μμ§ μμ΅λλ€. κΈ°νλ λ΄κ° #38μ νλ λμ λ°λ‘ μ΄κ²μ λ Έν¬νλ €κ³ ν κ²μ λλ€. λ§μ€ν°κ° λλ©΄ μ¬κΈ°μμ μ λ°μ΄νΈνκ² μ΅λλ€. κ°μ¬ν©λλ€.
μ΄κ²μ μ€μ λ‘ #38κ³Ό κ΄λ ¨μ΄ μμ΅λλ€. κ·Έ λ³κ²½ μ¬νμ SSH μ°κ²°μ ν΅ν΄ μΆκ° ν¬νΈλ₯Ό ν°λλ§νλ κ²μ΄ μλλΌ SSH νΈλν½ μ체λ₯Ό κ²μ΄νΈμ¨μ΄νλ κ²μ κ΄ν κ²μ΄κΈ° λλ¬Έμ λλ€. μ΄λ₯Ό μν΄μλ λ€λ₯Έ(λλ μ΅μν μΆκ°) μ루μ μ΄ νμν©λλ€. μ§κΈμ νν μ€μ λλ€. μ£μ‘ν©λλ€.
μ λ μ΅κ·Όμ ν¬νΈμ μ§μ μ°κ²°ν μ μλ μ격 rsync μλ²μ λκΈ°ννκΈ° μν΄ μ΄ κΈ°λ₯μ΄ νμνκ³ paramikoμ forward.py λ°λͺ¨ μ½λμ μ¬μ©ν μ μλ μν μ½λκ° μλ€λ κ²μ μκ² λμ΄ μ μκ² μ λ§λ μ루μ μ μ°Ύμμ΅λλ€. μ¬κΈ°μμ forward.pyμ λν ν¨μΉλ‘ μ μΆνμ΅λλ€: https://github.com/paramiko/paramiko/pull/504/
ν΄λΉ ν¨μΉμμ ForwardServer
λ₯Ό μΆκ°νκ³ ForwardServer
μ μΈμ€ν΄μ€λ₯Ό λ¨μν λ°ννλ local_tunnel()
λ₯Ό κ°μ§ μ μμ΅λλ€. pull requestμ λν @bitprophet μ κΆμ₯ μ¬νμ λ°λΌ Fabricμ© ν¨μΉ μμ
μ μ§νν©λλ€.
λλ μ€μ λ‘ κΉ¨λ«μ§ λͺ»νμ§λ§ local_tunnel()
μ λν ν¨μΉκ° μ΄λ―Έ μμ§λ§ μνμ λν΄ μμ ν νμ ν μλ μμ΅λλ€. μ΄λ»κ² ν΄μΌ νλμ?
@haridsv κ°λ₯ νλ€λ©΄ ν΄λΉ ν¨μΉ(#939)μμ ν μ€νΈνκ³ μ±κ³΅μ μΌλ‘ μ¬μ©νλ€κ³ μΈκΈνλ©΄ ββλμμ΄ λ κ²μ λλ€. κ·Έλ μ§ μμΌλ©΄ μΈλ΄μ¬μ κ°μ§μΈμ :) κ°μ¬ν©λλ€!
μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν κ³νμ΄ μμ΅λκΉ? μ΄ λ¬Έμ λ₯Ό ν¨κ» ν΄κ²°νλ λ κ°μ λ―Έν΄κ²° pull μμ²μ΄ μμ§λ§ κ²ν λμ§ μμμ΅λκΉ? μλλ₯Ό λμΌ μ μλ λ°©λ²μ΄ μμκΉμ?
λ¬Έμ μμ΄ #1218μ μ½λλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
939λ μ¬μ ν λ¦΄λ¦¬μ€ λ²ν·μ μμΌλ©° _μΌλΆ_ νλͺ©μ μλΌμΌ νκΈ° λλ¬Έμ 곧 μΆμλ 1.11μμ ννΈνμ§λ§ λ€μ κΈ°λ₯ μ£ΌκΈ°μμλ μ°μ μμλ₯Ό κ°κ² λ©λλ€. (κ·Έλ¦¬κ³ #1218μ΄ #939λ₯Ό λ체νλ κ²μ²λΌ 보μ΄λ―λ‘ λλ μλ§λ κ·Έκ²μ λ³ν©νκ³ λ³κ²½ λ‘κ·Έμ #939λ₯Ό κΈ°λ‘νκ² λ κ²μ λλ€.)