2017년 8월 17일 목요일

[Ansible] Linux(센트,우분투)와 윈도우에 NFS 디렉터리를 자동으로 마운트 하기




굉장히 오랜만에 글을 쓰네요 :)
하하하 ;;; pycon2017도 있었고...취업을 할려고 하는 것도 있었고 해서리 -_-;

특별히 아직도 갈 곳이 없네요 ㅎㅎㅎㅎㅎ 그래도 우울해 하지 않으렵니다. ~!

일단 앤서블 초중급과정을 만들고 있는데요 (중급 과정인가...아직 과정 수준이 미정이라 -_-)

ntp sync만 할려고 했더니...왠지 없어 보이고 누군가가 '너무 쉬워요' 하는 메아리 같은게 들려서....

nfs를 마운트 하기로 결정했습니다..
이게 나락의 시작...-_-

리눅스는 아주아주 순조롭게 넘어 갔는데....거의 1-2시간만에 센트 우분투 다 완성..



문제는 윈도우더라고요...

이게 좀 코드를 뜯어 보니...win_shell, win_command가 permission을 지원하는게 이상 요상해서...제대로 동작이 안됨...

그래서 나중에는 내가 파이썬도 깔고, ssh 서버도 돌려서 linux에 쉘처럼 돌릴테다..했는데
이건 코드에 import들이 틀려서 오류부터 시작하고...


이래저래 별별 삽질을 거치고 나서..



이렇게 unavailable이 나오는건 어쩔수 없구나...
 - net use or mount로 확인 from windows system
(vagrant user로 할 경우에는 -_-;;;; / administrator는 다 잘됨)


logoff와 login 신공으로 마무리 합니다.


이걸 할려고 'net use', 'New-PSDrive'를 모두 연구 사용해 봤는데요..
unavailable을 바꿀수가 없음..

자동화가 목적이니 그냥 저 상태에서 다시 시스템을 제 기동하기로 합니다.
NFS 관련 서비스를 아무리 제 시작해도 해결이 안됨 -_-;

재밌는건 그냥 명령창에서 바로 실행하면 다 잘된다는거..!!!
고로 아직 win_command나 win_shell이 문제가 있는...언젠간 수정되겠지만..지금은 방법이 없네용;;
mount 192.168.1.10:/home/vagrant/nfs_shared z:
net use z: \\192.168.1.10/home/vagrant/nfs_shared

[NFS 서버에서]


[NFS Client 중에서/윈도우]


추가 mount로 하는 경우에는 persistent가 안되서 startup:shell에 넣어야 하는데 ..구찮아서....net use로 변경..;;;
그리고 삽질 하면서 발견한건데..ansible과 ansible-playbook에서 win_command가 다르게 parsing함...하하하....당황스럽네요..


이대로 playbook에 넣으면 에러남...그래서 쪼개고 테스트해서 되게 만듬...
윈도우쪽은 좀 심하게 문제가 많은듯....

[코드]

---
- name: Setup for nfs server & clients
  gather_facts: no
  hosts: localhost
  tasks:
    - name: make nfs_shared directory
      file:
        path: /home/vagrant/nfs_shared
        state: directory
        mode: 0777                          #last 7 for windows system.
    - name: configure /etc/exports
      become: yes
      lineinfile:
        path: /etc/exports
        line: /home/vagrant/nfs_shared/ 192.168.1.0/24(rw,sync)

    - name : nfs service restart
      become: yes
      service :
        name : nfs
        state : restarted

- hosts: CentOS:Ubuntu
  gather_facts: no
  tasks:
    - name: make nfs_client directory
      file:
        path: /home/vagrant/nfs
        state: directory

    - name: mount point direcotry as client
      become: yes
      mount:
        name: /home/vagrant/nfs
        src: 192.168.1.10:/home/vagrant/nfs_shared
        fstype: nfs
        opts: nfsvers=3
        state: mounted


- hosts: Win
  gather_facts: no
  tasks:
    - name: mount feature on
      win_feature:
        name: NFS-Client
        state: present

    - name: mount nfs_shared
      win_command: net use "z:" "\\192.168.1.10/home/vagrant/nfs_shared"

    - name: windows reboot
      win_reboot:

0 개의 댓글:

댓글 쓰기

 
Copyright © . 엔지니어를 위한 파이썬 및 기술 블로그 - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger