2017년 10월 27일 금요일

[Ansible] 조건별로 nginx를 "한방에" 설치하기

- 2 개의 댓글












지난번에 [Ansible] 조건별로 nginx 설치하기 를 통해서
데비안 계열(우분투)를 골라서 설치하는 방법을 알아보았었죠오~!!

그러면 HPC나 WEB server나 이런 저런 목적으로 노드들 안에 여러가지의 운영체제들이 섞여 있는 경우라면 어떻게 할까요?

여러가지 버전을 만들어서 우분투 버전, 센트 버전, 레드햇 버전등을 다 만들어야 할까요?
만드는건 그렇다고 치고...여러개를 실행하려면 답답해 보이지 않을까요?

그리고 더 큰 문제는 지난번에 쓴 when 조건은 task단위로 동작하기 때문에...그동안 nginx를 설치하기 위해 여러 개들의 task를 쓴 것마다 다 넣어줘야 한다는 ...모질이 같은...단점이 발생합니다.

어떻게 해결하고 싶어지지 않나요?
... 아니 저만 그런가요...--;;;



하하하;;;

생각해 보면 말이죠 컴터는 트리(Tree)라는 구조를 정말 많이 좋아합니다.
저희가 주로 쓰고 있는 윈도우도 트리 구조를 가지고 있죠


왜 이런 얘기를 하냐면요..
nginx_main.yml에서 다른 yml을 부르면 되는, 즉 트리 구조를 만들면 이런 문제가 해결되거든요

..yml에서 다른 yml을 불러서 거기서 조건에 맞는 부분을 실행하면 됩니다.
이때 사용되는 기능이 include_tasks라는 기능입니다. (구 include)

소스 코드를 볼까요?

[ nginx_main.yml ]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
---
- name: Install nginx on the nodes
  hosts: nodes
  become: yes

  tasks:
  - name: nginx for Ubuntu
    include_tasks: Ubuntu.yml
    when: ansible_distribution == 'Ubuntu'

  - name: nginx for CentOS
    include_tasks: CentOS.yml
    when: ansible_distribution == 'CentOS'


[ CentOS.yml ]
1
2
3
4
5
6
7
8
- name: install epel-release
  action : "{{ ansible_pkg_mgr }} name=epel-release state=latest"
- name: install nginx web server
  action : "{{ ansible_pkg_mgr }} name=nginx state=present"
- name: Upload default index.html for web server
  get_url: url=https://www.nginx.com dest=/usr/share/nginx/html/ mode=0644
- name: Start nginx web server
  service: name=nginx state=started


[ Ubuntu.yml ]
1
2
3
4
- name: install nginx web server
  action : "{{ ansible_pkg_mgr }} name=nginx state=present"
- name: Upload default index.html for web server
  get_url: url=https://www.nginx.com dest=/usr/share/nginx/html/ mode=0644 validate_certs=no


위의 코드는 nginx_main에서 CentOS와 Ubuntu의 조건에 맞으면 불러서 사용하게 되는 것입니다.

결과는 이렇게 나옵니다.




어떤가요? 재밌을꺼 같죠? 이 걸 잘 활용하면 코드를 효율적으로 사용하고 구조화해서 보기 좋게, 그리고 관리 하게 쉽게 할수 있답니다. :)

혹시...

이렇다면 ~~ 다 이 글을 제대로 이해하게 못 쓴 제 잘못이니 :) 저에게 돌을 던져 주세요~!
그럼 돌아오는 주말 즐겁게 보내세요~!



[Continue reading...]

2017년 10월 17일 화요일

[Ansible] 조건별로 nginx 설치하기

- 0 개의 댓글

오랜만 입니다~~!
일주일에 한개는 올려야 하는데....하하하;;; 바빴네요 ㅠㅠ
(이런거 아닙니다 진짜 아닙니다 -_-;)



이번에 다룰 주제는 ~~!
그룹 내에서 조건으로 구분해서 설치하기 입니다.

이게 무슨 얘기냐면....
web server를 위한 노드들이 있다고 생각해 봅시다.
그런데, 특정 OS 버그가 있을수 있기 때문에, 다양성을 추구하는 목적 및 테스트 bed라 섞어서 쓴다고 해 봅시다..
즉 우분투와 레드햇 계열을 동시에 사용하고 있다고  했을때,
그룹을 구분해서 우분투 계열과 레드햇 계열로 쪼개서 hosts에 입력하면 되겠지만 말이지요...

web, prod, test를 하는 목적에 또 여기서 OS 별로 쪼개면 엄청 귀찮게 되거든요..
따라서 해당 부분을 자동으로 구분하도록 코드를 입력해 주면 편리하게 이용이 가능합니다.~!!

우선 단순하게 구현하는 것부터 ~~!!


1
2
3
4
5
6
7
8
9
---
- name: Install nginx on the nodes
  hosts: nodes
  become: yes

  tasks:
    - name: install nginx web server
      action : "{{ ansible_pkg_mgr }} name=nginx state=present"
      when : ansible_os_family == 'Debian'

해당 코드는 우분투 그러니까....
데비안 계열만 인식해서 >>> ansible_os_family == 'Debian' 
그중에서 데비안에서 쓰는 apt를 추출해서 {{ ansible_pkg_mgr }}
nginx를 설치하는 것 입니다.
(package라는 모듈을 쓰면 더 간단하게 되기도 하지만 일단 이걸로 실습해 봅니다아~)

여기서 이게 가능한 것은 when이라는 조건과 ansible_os_family와 ansible_pkg_mgr이라는 변수를 쓸수가 있었다는 거죠

결과를 보면...다음과 같죠~!


여기서 빨강색은 인자를 수집할때는 가상머신이 꺼져 있어서 그런 것입니다~!




현재 상태가 이렇거든요..메모리 부족으로... 4개를 껐어요.
돈 벌어서 메모리 사야 할까봐요 ㅠㅠ




여하튼 깔끔하게 우분투에만 nginx가 설치 되었습니다.~
(101-105까지거든요~)

그럼 인자값이 있는 변수를 어떻게 알아냈을까요?
(저만 궁금한가요...ㅠㅠ?)



그건 말이죠오오~!
ansible -m setup <노드이름>을 입력하면 명령 수행시에 얻어오는 인자들을 보여줍니다.
인자 값 샘플

거기서 아래와 같이 두가지 방법으로 인자 값을 받아서 사용할수 있는데요

[ jin_ipv4.yml ]

1
2
3
4
5
---
- hosts: localhost
  tasks:
    - debug: msg={{ ansible_default_ipv4.address }}
    - debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address']

debug를 쓴거는 내용을 확인하려고 쓴거고...중요한건

{{ ansible_default_ipv4.address }}
or
[inventory_hostname]['ansible_default_ipv4']['address']

이 구문이 되는 거죠 (파이썬의 dict에 익숙하시면 아주 보기 편....;; 할텐데요.)

아..아니아니 이게 아니라..




그러니 포기하지 말고, 본인의 상상력을 발휘해서 좀 더 동적으로 동작하는 코드를 만들어 내 봅시다 :)

참 결과는요..이렇게 나옵니다. 여기 IP는 기본으로 vagrant의 nat ip 입니다앙~!



이걸 더 보기 좋게 만드는 것을 다음에 해볼께요~!!
이걸 알아두면 롤(Role)도 쉬워요 아...마..도요?
하하하;;;

추가 정보
앤서블 Family로 받아오는 OS 정보 입니당~!
(고로 vmware와 windows는 이걸로 안되는다는거죠;; 추후에 아마 추가될꺼에요 nxos는 어떻게 될지 모르겠네요 ...왠지 redhat으로 될 것만 같은 느낌이...드네용)

# A list with OS Family members
OS_FAMILY = dict(
    RedHat = 'RedHat', Fedora = 'RedHat', CentOS = 'RedHat', Scientific = 'RedHat',
    SLC = 'RedHat', Ascendos = 'RedHat', CloudLinux = 'RedHat', PSBM = 'RedHat',
    OracleLinux = 'RedHat', OVS = 'RedHat', OEL = 'RedHat', Amazon = 'RedHat',
    XenServer = 'RedHat', Ubuntu = 'Debian', Debian = 'Debian', Raspbian = 'Debian', Slackware = 'Slackware', SLES = 'Suse',
    SLED = 'Suse', openSUSE = 'Suse', SuSE = 'Suse', SLES_SAP = 'Suse', Gentoo = 'Gentoo', Funtoo = 'Gentoo',
    Archlinux = 'Archlinux', Manjaro = 'Archlinux', Mandriva = 'Mandrake', Mandrake = 'Mandrake',
    Solaris = 'Solaris', Nexenta = 'Solaris', OmniOS = 'Solaris', OpenIndiana = 'Solaris',
    SmartOS = 'Solaris', AIX = 'AIX', Alpine = 'Alpine', MacOSX = 'Darwin',
    FreeBSD = 'FreeBSD', HPUX = 'HP-UX'
)
https://groups.google.com/forum/#!topic/ansible-project/OZPu-b17n_w







[Continue reading...]

[Ansible] 디폴트 인자값 샘플

- 0 개의 댓글



  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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
192.168.1.106 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "192.168.1.106",
            "10.0.2.15"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::a00:27ff:febc:1c51",
            "fe80::5054:ff:fead:a096"
        ],
        "ansible_apparmor": {
            "status": "disabled"
        },
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "12/01/2006",
        "ansible_bios_version": "VirtualBox",
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-3.10.0-514.26.2.el7.x86_64",
            "biosdevname": "0",
            "console": "ttyS0,115200n8",
            "crashkernel": "auto",
            "net.ifnames": "0",
            "no_timer_check": true,
            "quiet": true,
            "rd.lvm.lv": "VolGroup00/LogVol01",
            "rhgb": true,
            "ro": true,
            "root": "/dev/mapper/VolGroup00-LogVol00"
        },
        "ansible_date_time": {
            "date": "2017-10-16",
            "day": "16",
            "epoch": "1508161791",
            "hour": "13",
            "iso8601": "2017-10-16T13:49:51Z",
            "iso8601_basic": "20171016T134951028306",
            "iso8601_basic_short": "20171016T134951",
            "iso8601_micro": "2017-10-16T13:49:51.028441Z",
            "minute": "49",
            "month": "10",
            "second": "51",
            "time": "13:49:51",
            "tz": "UTC",
            "tz_offset": "+0000",
            "weekday": "Monday",
            "weekday_number": "1",
            "weeknumber": "42",
            "year": "2017"
        },
        "ansible_default_ipv4": {
            "address": "10.0.2.15",
            "alias": "eth0",
            "broadcast": "10.0.2.255",
            "gateway": "10.0.2.2",
            "interface": "eth0",
            "macaddress": "52:54:00:ad:a0:96",
            "mtu": 1500,
            "netmask": "255.255.255.0",
            "network": "10.0.2.0",
            "type": "ether"
        },
        "ansible_default_ipv6": {},
        "ansible_devices": {
            "sda": {
                "holders": [],
                "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)",
                "model": "VBOX HARDDISK",
                "partitions": {
                    "sda1": {
                        "holders": [],
                        "sectors": "2048",
                        "sectorsize": 512,
                        "size": "1.00 MB",
                        "start": "2048",
                        "uuid": null
                    },
                    "sda2": {
                        "holders": [],
                        "sectors": "2097152",
                        "sectorsize": 512,
                        "size": "1.00 GB",
                        "start": "4096",
                        "uuid": "5fa55ee0-f673-472b-a7f6-4353c6451a01"
                    },
                    "sda3": {
                        "holders": [
                            "VolGroup00-LogVol00",
                            "VolGroup00-LogVol01"
                        ],
                        "sectors": "81784832",
                        "sectorsize": 512,
                        "size": "39.00 GB",
                        "start": "2101248",
                        "uuid": null
                    }
                },
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "cfq",
                "sectors": "83886080",
                "sectorsize": "512",
                "size": "40.00 GB",
                "support_discard": "0",
                "vendor": "ATA"
            }
        },
        "ansible_distribution": "CentOS",
        "ansible_distribution_major_version": "7",
        "ansible_distribution_release": "Core",
        "ansible_distribution_version": "7.3.1611",
        "ansible_dns": {
            "nameservers": [
                "10.0.2.3"
            ]
        },
        "ansible_domain": "",
        "ansible_effective_group_id": 1000,
        "ansible_effective_user_id": 1000,
        "ansible_env": {
            "HOME": "/home/vagrant",
            "LANG": "en_US.UTF-8",
            "LESSOPEN": "||/usr/bin/lesspipe.sh %s",
            "LOGNAME": "vagrant",
            "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:",
            "MAIL": "/var/mail/vagrant",
            "PATH": "/usr/local/bin:/usr/bin",
            "PWD": "/home/vagrant",
            "SELINUX_LEVEL_REQUESTED": "",
            "SELINUX_ROLE_REQUESTED": "",
            "SELINUX_USE_CURRENT_RANGE": "",
            "SHELL": "/bin/bash",
            "SHLVL": "2",
            "SSH_CLIENT": "192.168.1.10 39868 22",
            "SSH_CONNECTION": "192.168.1.10 39868 192.168.1.106 22",
            "SSH_TTY": "/dev/pts/0",
            "TERM": "cygwin",
            "USER": "vagrant",
            "XDG_RUNTIME_DIR": "/run/user/1000",
            "XDG_SESSION_ID": "18",
            "_": "/usr/bin/python"
        },
        "ansible_eth0": {
            "active": true,
            "device": "eth0",
            "features": {
                "busy_poll": "off [fixed]",
                "fcoe_mtu": "off [fixed]",
                "generic_receive_offload": "on",
                "generic_segmentation_offload": "on",
                "highdma": "off [fixed]",
                "hw_tc_offload": "off [fixed]",
                "l2_fwd_offload": "off [fixed]",
                "large_receive_offload": "off [fixed]",
                "loopback": "off [fixed]",
                "netns_local": "off [fixed]",
                "ntuple_filters": "off [fixed]",
                "receive_hashing": "off [fixed]",
                "rx_all": "off",
                "rx_checksumming": "off",
                "rx_fcs": "off",
                "rx_vlan_filter": "on [fixed]",
                "rx_vlan_offload": "on",
                "rx_vlan_stag_filter": "off [fixed]",
                "rx_vlan_stag_hw_parse": "off [fixed]",
                "scatter_gather": "on",
                "tcp_segmentation_offload": "on",
                "tx_checksum_fcoe_crc": "off [fixed]",
                "tx_checksum_ip_generic": "on",
                "tx_checksum_ipv4": "off [fixed]",
                "tx_checksum_ipv6": "off [fixed]",
                "tx_checksum_sctp": "off [fixed]",
                "tx_checksumming": "on",
                "tx_fcoe_segmentation": "off [fixed]",
                "tx_gre_segmentation": "off [fixed]",
                "tx_gso_robust": "off [fixed]",
                "tx_ipip_segmentation": "off [fixed]",
                "tx_lockless": "off [fixed]",
                "tx_mpls_segmentation": "off [fixed]",
                "tx_nocache_copy": "off",
                "tx_scatter_gather": "on",
                "tx_scatter_gather_fraglist": "off [fixed]",
                "tx_sctp_segmentation": "off [fixed]",
                "tx_sit_segmentation": "off [fixed]",
                "tx_tcp6_segmentation": "off [fixed]",
                "tx_tcp_ecn_segmentation": "off [fixed]",
                "tx_tcp_segmentation": "on",
                "tx_udp_tnl_segmentation": "off [fixed]",
                "tx_vlan_offload": "on [fixed]",
                "tx_vlan_stag_hw_insert": "off [fixed]",
                "udp_fragmentation_offload": "off [fixed]",
                "vlan_challenged": "off [fixed]"
            },
            "ipv4": {
                "address": "10.0.2.15",
                "broadcast": "10.0.2.255",
                "netmask": "255.255.255.0",
                "network": "10.0.2.0"
            },
            "ipv6": [
                {
                    "address": "fe80::5054:ff:fead:a096",
                    "prefix": "64",
                    "scope": "link"
                }
            ],
            "macaddress": "52:54:00:ad:a0:96",
            "module": "e1000",
            "mtu": 1500,
            "pciid": "0000:00:03.0",
            "promisc": false,
            "speed": 1000,
            "type": "ether"
        },
        "ansible_eth1": {
            "active": true,
            "device": "eth1",
            "features": {
                "busy_poll": "off [fixed]",
                "fcoe_mtu": "off [fixed]",
                "generic_receive_offload": "on",
                "generic_segmentation_offload": "on",
                "highdma": "off [fixed]",
                "hw_tc_offload": "off [fixed]",
                "l2_fwd_offload": "off [fixed]",
                "large_receive_offload": "off [fixed]",
                "loopback": "off [fixed]",
                "netns_local": "off [fixed]",
                "ntuple_filters": "off [fixed]",
                "receive_hashing": "off [fixed]",
                "rx_all": "off",
                "rx_checksumming": "off",
                "rx_fcs": "off",
                "rx_vlan_filter": "on [fixed]",
                "rx_vlan_offload": "on",
                "rx_vlan_stag_filter": "off [fixed]",
                "rx_vlan_stag_hw_parse": "off [fixed]",
                "scatter_gather": "on",
                "tcp_segmentation_offload": "on",
                "tx_checksum_fcoe_crc": "off [fixed]",
                "tx_checksum_ip_generic": "on",
                "tx_checksum_ipv4": "off [fixed]",
                "tx_checksum_ipv6": "off [fixed]",
                "tx_checksum_sctp": "off [fixed]",
                "tx_checksumming": "on",
                "tx_fcoe_segmentation": "off [fixed]",
                "tx_gre_segmentation": "off [fixed]",
                "tx_gso_robust": "off [fixed]",
                "tx_ipip_segmentation": "off [fixed]",
                "tx_lockless": "off [fixed]",
                "tx_mpls_segmentation": "off [fixed]",
                "tx_nocache_copy": "off",
                "tx_scatter_gather": "on",
                "tx_scatter_gather_fraglist": "off [fixed]",
                "tx_sctp_segmentation": "off [fixed]",
                "tx_sit_segmentation": "off [fixed]",
                "tx_tcp6_segmentation": "off [fixed]",
                "tx_tcp_ecn_segmentation": "off [fixed]",
                "tx_tcp_segmentation": "on",
                "tx_udp_tnl_segmentation": "off [fixed]",
                "tx_vlan_offload": "on [fixed]",
                "tx_vlan_stag_hw_insert": "off [fixed]",
                "udp_fragmentation_offload": "off [fixed]",
                "vlan_challenged": "off [fixed]"
            },
            "ipv4": {
                "address": "192.168.1.106",
                "broadcast": "192.168.1.255",
                "netmask": "255.255.255.0",
                "network": "192.168.1.0"
            },
            "ipv6": [
                {
                    "address": "fe80::a00:27ff:febc:1c51",
                    "prefix": "64",
                    "scope": "link"
                }
            ],
            "macaddress": "08:00:27:bc:1c:51",
            "module": "e1000",
            "mtu": 1500,
            "pciid": "0000:00:08.0",
            "promisc": false,
            "speed": 1000,
            "type": "ether"
        },
        "ansible_fips": false,
        "ansible_form_factor": "Other",
        "ansible_fqdn": "ansible-node06",
        "ansible_gather_subset": [
            "hardware",
            "network",
            "virtual"
        ],
        "ansible_hostname": "ansible-node06",
        "ansible_interfaces": [
            "lo",
            "eth1",
            "eth0"
        ],
        "ansible_kernel": "3.10.0-514.26.2.el7.x86_64",
        "ansible_lo": {
            "active": true,
            "device": "lo",
            "features": {
                "busy_poll": "off [fixed]",
                "fcoe_mtu": "off [fixed]",
                "generic_receive_offload": "on",
                "generic_segmentation_offload": "on",
                "highdma": "on [fixed]",
                "hw_tc_offload": "off [fixed]",
                "l2_fwd_offload": "off [fixed]",
                "large_receive_offload": "off [fixed]",
                "loopback": "on [fixed]",
                "netns_local": "on [fixed]",
                "ntuple_filters": "off [fixed]",
                "receive_hashing": "off [fixed]",
                "rx_all": "off [fixed]",
                "rx_checksumming": "on [fixed]",
                "rx_fcs": "off [fixed]",
                "rx_vlan_filter": "off [fixed]",
                "rx_vlan_offload": "off [fixed]",
                "rx_vlan_stag_filter": "off [fixed]",
                "rx_vlan_stag_hw_parse": "off [fixed]",
                "scatter_gather": "on",
                "tcp_segmentation_offload": "on",
                "tx_checksum_fcoe_crc": "off [fixed]",
                "tx_checksum_ip_generic": "on [fixed]",
                "tx_checksum_ipv4": "off [fixed]",
                "tx_checksum_ipv6": "off [fixed]",
                "tx_checksum_sctp": "on [fixed]",
                "tx_checksumming": "on",
                "tx_fcoe_segmentation": "off [fixed]",
                "tx_gre_segmentation": "off [fixed]",
                "tx_gso_robust": "off [fixed]",
                "tx_ipip_segmentation": "off [fixed]",
                "tx_lockless": "on [fixed]",
                "tx_mpls_segmentation": "off [fixed]",
                "tx_nocache_copy": "off [fixed]",
                "tx_scatter_gather": "on [fixed]",
                "tx_scatter_gather_fraglist": "on [fixed]",
                "tx_sctp_segmentation": "on",
                "tx_sit_segmentation": "off [fixed]",
                "tx_tcp6_segmentation": "on",
                "tx_tcp_ecn_segmentation": "on",
                "tx_tcp_segmentation": "on",
                "tx_udp_tnl_segmentation": "off [fixed]",
                "tx_vlan_offload": "off [fixed]",
                "tx_vlan_stag_hw_insert": "off [fixed]",
                "udp_fragmentation_offload": "on",
                "vlan_challenged": "on [fixed]"
            },
            "ipv4": {
                "address": "127.0.0.1",
                "broadcast": "host",
                "netmask": "255.0.0.0",
                "network": "127.0.0.0"
            },
            "ipv6": [
                {
                    "address": "::1",
                    "prefix": "128",
                    "scope": "host"
                }
            ],
            "mtu": 65536,
            "promisc": false,
            "type": "loopback"
        },
        "ansible_machine": "x86_64",
        "ansible_machine_id": "582dfe90830c4f239921b48288da321c",
        "ansible_memfree_mb": 6,
        "ansible_memory_mb": {
            "nocache": {
                "free": 329,
                "used": 159
            },
            "real": {
                "free": 6,
                "total": 488,
                "used": 482
            },
            "swap": {
                "cached": 0,
                "free": 1535,
                "total": 1535,
                "used": 0
            }
        },
        "ansible_memtotal_mb": 488,
        "ansible_mounts": [
            {
                "device": "/dev/mapper/VolGroup00-LogVol00",
                "fstype": "xfs",
                "mount": "/",
                "options": "rw,seclabel,relatime,attr2,inode64,noquota",
                "size_available": 38941630464,
                "size_total": 40212119552,
                "uuid": "209ec503-acbc-4b2d-be55-b50ce1a28c58"
            },
            {
                "device": "/dev/sda2",
                "fstype": "xfs",
                "mount": "/boot",
                "options": "rw,seclabel,relatime,attr2,inode64,noquota",
                "size_available": 995123200,
                "size_total": 1063256064,
                "uuid": "5fa55ee0-f673-472b-a7f6-4353c6451a01"
            }
        ],
        "ansible_nodename": "ansible-node06",
        "ansible_os_family": "RedHat",
        "ansible_pkg_mgr": "yum",
        "ansible_processor": [
            "GenuineIntel",
            "Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz"
        ],
        "ansible_processor_cores": 1,
        "ansible_processor_count": 1,
        "ansible_processor_threads_per_core": 1,
        "ansible_processor_vcpus": 1,
        "ansible_product_name": "VirtualBox",
        "ansible_product_serial": "NA",
        "ansible_product_uuid": "NA",
        "ansible_product_version": "1.2",
        "ansible_python": {
            "executable": "/usr/bin/python",
            "has_sslcontext": true,
            "type": "CPython",
            "version": {
                "major": 2,
                "micro": 5,
                "minor": 7,
                "releaselevel": "final",
                "serial": 0
            },
            "version_info": [
                2,
                7,
                5,
                "final",
                0
            ]
        },
        "ansible_python_version": "2.7.5",
        "ansible_real_group_id": 1000,
        "ansible_real_user_id": 1000,
        "ansible_selinux": {
            "config_mode": "enforcing",
            "mode": "enforcing",
            "policyvers": 28,
            "status": "enabled",
            "type": "targeted"
        },
        "ansible_service_mgr": "systemd",
        "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBF6W910VHiIaxDyYynwf0KcVqT5SZKnGCy2Q+qxcryjLzeUDx5xmzGCSj7P2ZeJcu3zCL/w/ByRjYTuX8bfQxqQ=",
        "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAIJWOjN3IvBJHd79HIR3AtyYAaVe1+HR3fWy5oJ2+VWb7",
        "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCyvz8wj3Jkw8dr93qC+PA9QCPOLuXb53RJSDuFaXoJ6Gbz0Z2AsEzTG/IEIFlu5IQnWtuNIDvY+lxy0Ax5R608ayE3NFUxqurzTXsaxP+Zyq6W2VxRTAznbW4cPV4JmvBscaciK6/MTLhihAqpmFs/L2BKf/o/Gq25PFbPKL3g3vN7CBNsLUQ2BZbbXdXOZ+i5iEcnqeJtj9OFOmFAWOXrkNm4Q6ENmE50Fd4bDDLOt6LNta5lb0dzEPgF6k17m70Dqm19QtG8LGaeEg6UFojPVkySd1mDnO4GiPa1bKXm8IKVzzLW2bAlQxQdnP/b5bs/uTKve377J1aMy63zUP4P",
        "ansible_swapfree_mb": 1535,
        "ansible_swaptotal_mb": 1535,
        "ansible_system": "Linux",
        "ansible_system_capabilities": [
            ""
        ],
        "ansible_system_capabilities_enforced": "True",
        "ansible_system_vendor": "innotek GmbH",
        "ansible_uptime_seconds": 46594,
        "ansible_user_dir": "/home/vagrant",
        "ansible_user_gecos": "vagrant",
        "ansible_user_gid": 1000,
        "ansible_user_id": "vagrant",
        "ansible_user_shell": "/bin/bash",
        "ansible_user_uid": 1000,
        "ansible_userspace_architecture": "x86_64",
        "ansible_userspace_bits": "64",
        "ansible_virtualization_role": "guest",
        "ansible_virtualization_type": "virtualbox",
        "module_setup": true
    },
    "changed": false
}
[Continue reading...]
 
Copyright © . 엔지니어를 위한 파이썬 및 기술 블로그 - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger