(포크왈 : 어 여기에 첩자가 숨어 있는거 같은데...)
1탄에서는 pipelining을 알아봤다면~!
2탄에서는 가장 처음으로 알아볼 것은 Fork 입니다.
네 위의 그림의 그 fork가 맞습니다. 포크~! 진짜 같은 이름입니다.
2. Forks
다만 앤서블에서는 System call 즉, 한개의 자식 프로세스를 만드는 개념과 비슷하게 쓰입니다. 쉽게 얘기하면 한번에 처리할 수 있는 세션으로 이해하시면 될 것 같네요 :)
기본 값은 위와 같이 5개입니다.
지금까지 하는 테스트랩은 forks를 늘려봐야 별로 빠른 것을 체감하기 어렵습니다. -_-
끽해봐야 8 - 10개니까요...
실무에서는 이와 다르게 제일 앞단에 있는 web server(nginx, apache, IIS, GWS)에 업데이트를 한번에 할때는 fork값을 가능한 만큼 최대한 땡기는게 좋겠죠 :)
이는 앤서버 서버의 성능에 따라 좌우되는 개념이기 때문에 적정 값은 찾기 나름~!
나중에 테스트는 설 이후쯤에 60개에서 100개의 우분투를 올리고 나서 거기에서 테스트 결과를 살펴봐야 겠네요....
3. block
블록이라고 썼다니..레고 블록처럼 모으고 붙이는거 얘기하는건가? 라고 생각하는 분이 있겠죠?
근데 이게 정답입니다. -_-
승용차를 타고 갈때 사람이 타면 사람 무게가 더해지긴 하지만..그래도 다 같이 타는게 더 빠른 시간에 원하는 위치에 도착할 수 있는 것이겠죠?
어짜피 갈꺼면 다 같이 가는게 나은거죠 :)
(승용차급이 안되면 미니버스로~~ )
이처럼, 블록단위로 묶어서 워크샵 갈때 처럼 다 같이 모이고 낑겨서 가는 것이
비용적인(속도) 면에서는 효율적인 것 입니다.
이건 테스트가 간단하니 한번 내용을 볼까요?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | --- - hosts: '{{ hosts }}' become: yes gather_facts: no tasks: - name: add user testuser1 user: name: "testuser1" state: present groups: "vagrant" - name: add user testuser2 user: name: "testuser2" state: present groups: "vagrant" |
실행~ 런!
[ 블록으로 묶은 것 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | --- - hosts: '{{ hosts }}' become: yes gather_facts: no tasks: - name: add several users user: name: "{{ item.name }}" state: present groups: "{{ item.groups }}" with_items: - { name: 'testuser1', groups: 'vagrant' } - { name: 'testuser2', groups: 'vagrant' } |
실행~ 런!
아주 약간 시간이 단축되었네요. 간단하게 유저를 추가하는 예제니까요.
하지만 대량의 내용을 업데이트할때라면 블록으로 한번에 태워서 보냅시다.
이게 더 빠르거든요 :)
다음에 계쏙~! To be continue~!!
Thank you sir. greeting from korea!
답글삭제