Ansible file 모듈, copy 모듈, template 모듈

개시하다


할머니를 쓰러뜨리기 위해서 이번엔 노드야.제이스를 치워야 하니까 노드.Ansible로 js 설정을 자동화하기 위해 (^^)/!자동화하려면 Ansible 모듈을 쓰러뜨려야 한다는 걸 알았으니 모듈을 배워라!

개요


■ file 모듈
■ copy 모듈
■ template 모듈
요약(^^)/!

■ file 모듈


file 모듈 공식 문서
파일, 기호 링크 또는 디렉토리를 설정하거나 삭제합니다.
매개 변수
의향
path
※ 필수 아이템입니다.파일 경로를 지정합니다.
src
제어 노드의 파일 경로를 지정합니다. (state=link에서만)source의 약칭.
dest
destination의 약칭.수취인src를 놓는 목표 노드의 절대 경로를 지정합니다.
attributes
파일이나 디렉터리의 속성을 지정합니다.
group
파일/디렉토리가 있는 그룹을 지정합니다.
mode
라이센스 파일/디렉토리8진수(0644 또는 "644")와 기호 모드(u = rw, g = r, o = r)를 지정할 수 있습니다.
follow
파일이 이미 존재하면 바꾸지 않습니다.(확인 필요)
force
심볼릭 링크를 만듭니다.path 파일의 링크를 취소하고 src로 파일 대신 기호 링크를 만듭니다
recurse
파일 속성을 반복적으로 변경합니다 (state = directory/state = hard 에만 해당).
state
이미 있는 파일을 조작하는 상황을 지정합니다.link: 심볼릭 링크로 지정.path에서 지정한 경로 이름의 디렉터리를 만듭니다.경로 이름의 중간 디렉토리가 없으면 하위 디렉토리도 함께 생성됩니다.하드 링크로 지정합니다.touch: path에서 지정한 파일이 존재하지 않을 때 빈 파일을 만듭니다.파일이 이미 존재하면 시간 스탬프를 업데이트합니다.absent: 디렉터리, 파일, 기호 링크를 삭제합니다.
- name: ディレクトリのシンボリックリンクを作成
- file:
    src: /file/to/link/to
    dest: /path/to/symlink
    state=link
    
- name: ファイルの所有権、グループ、およびアクセス許可を変更する
  file:
    path: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

- name: ハードリンクを作成する 
  file:
    src: '/tmp/{{ item.src }}'
    dest: '{{ item.dest }}'
    state: hard
  loop:
    - { src: x, dest: y }
    - { src: z, dest: k }

- name: シンボリックモードでファイルを作成、0644の権限を付与する
  file:
    path: /etc/foo.conf
    state: touch
    mode: u=rw,g=r,o=r

■ copy 모듈


copy 모듈 공식 문서
copy 모듈은 컨트롤러 노드에 존재하는 파일을 목표 노드로 보낼 수 있습니다.
각 디렉토리의 파일은 복사할 수 있지만 빈 디렉토리는 복사할 수 없습니다.
remote_src 파라미터를 통해 원격에서 원격으로 다른 경로를 복사할 수 있습니다.
src 대신 콘텐츠를 지정하면 실제 파일을 준비하지 않은 상태에서 파일의 내용을 직접 기록할 수 있습니다.
매개 변수
의향
dest
※ 필수 아이템입니다.대상 노드의 절대 경로를 복제합니다.src가 디렉터리인 경우 이것도 디렉터리가 필요합니다.
src
복제 소스를 지정합니다.
attributes
파일 속성을 지정합니다.
backup
yes라면 파일을 덮어쓰는 백업을 만듭니다.백업은 복사된 대상 파일이 있는 디렉터리와 같은 디렉터리에 생성됩니다.
content
src 대신 사용할 때 복사 대상 파일에 기술된 내용을 지정합니다.
decrypt
암호화된 파일을 복호화하다.기본값은 yes
directory_mode
디렉토리 권한 지정
follow
yes의 경우,dest가 지정한 내용을 따르는 것을 나타냅니다.파일이 이미 존재하면 바꾸지 않습니다.(확인 필요) 기본값은 no입니다.
force
yes를 지정하면 목적지에 이미 파일이 존재하는 경우 파일의 내용을 비교하는 데 차이가 있을 경우 복사를 실시한다.no를 지정한 경우 복제 목표지에 파일이 존재하지 않는 경우에만 복사를 실시한다.기본값은 yes입니다.
group
그룹 이름을 지정합니다.
mode
chemod 명령을 통해 설정할 수 있는 권한 설정
owner
chown 명령을 통해 설정할 수 있는 소유자 사용자의 설정입니다.
validate
지정한 위치로 복사하기 전에 실행된 검증 명령입니다.검증할 파일 경로가%s 을(를) 통해 전달됩니다.셸은 사용할 수 없습니다.
remote_src
대상 노드의 파일 복사 yes/no에서 지정합니다.src/dest의 경로는 목표 노드입니다
- name: 所有者と権限を設定しファイルをコピーする
  copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: '0644'

- name: ntp.confファイルコピーし、元のファイルをバックアップする
  copy:
    src: /mine/ntp.conf
    dest: /etc/ntp.conf
    owner: root
    group: root
    mode: '0644'
    backup: yes

- name: visudoによる検証に合格した後、ファイルをコピーする
  copy:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -csf %s

- name: contentの内容を対象ファイルにコピーする
  copy:
    content: '# This file was moved to /etc/other.conf'
    dest: /etc/mine.conf
    
- name: ターゲットノード内でhello.txtをコピーする。
  copy: 
    src: /tmp/hello.txt
    dest: /tmp/hello2.txt
    mode: 0644
    remote_src: yes

■ template 모듈


template 모듈 공식 문서
파일을 템플릿화하여 대상 노드로 보냅니다.
템플릿은 Jinja2 템플릿 파일에서if, for 등 프로그램에 대한 설명을 할 수 있습니다.
매개 변수
의향
dest
복제 대상의 절대 경로를 지정합니다.
src
로컬 Jinja2 템플릿 경로절대 경로와 상대 경로를 지정할 수 있습니다.
group
chown 명령을 통해 설정할 수 있는 소유자 그룹의 설정입니다.
mode
chemod 명령을 통해 설정할 수 있는 권한입니다.8진수와 기호 모드를 지정할 수 있습니다.
owner
chown 명령을 통해 설정할 수 있는 소유자 사용자의 설정입니다.
validate
복사 전에 실행된 검증 명령입니다.검증할 파일 경로는 '%s'을(를) 사용하여 지정할 수 있습니다.
force
・yes→dest와 내용이 다르면 파일을 바꿉니다.·no→파일은 받는 사람이 없는 경우에만 전송
newline_sequence
파일 템플릿에 사용할 줄 바꿈 시퀀스를 지정합니다.기본값은\n
- name: ファイルをテンプレート化して/etc/files.confに送信する
  template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf
    owner: bin
    group: wheel
    mode: '0644'

- name: テンプレートからDOSスタイルのテキストファイルを作成する
  template:
    src: config.ini.j2
    dest: /share/windows/config.ini
    newline_sequence: '\r\n'

- name: visudoによる検証に合格した後、新しいファイルを所定の場所にコピーする
  template:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -cf %s

- name: sshd_configを更新し、バックアップを作成する
  template:
    src: etc/ssh/sshd_config.j2
    dest: /etc/ssh/sshd_config
    owner: root
    group: root
    mode: '0600'
    validate: /usr/sbin/sshd -t -f %s
    backup: yes
template 모듈은 모듈 내에서 원본 파일을 가공하여 서버에 설정하기 때문에 설정 오류가 발생하기 쉽다.따라서 의도하지 않은 곳을 진자2의 포맷으로 인식해 처리할 수도 있다.
익숙하지 않은 사람은 가능한 copy 모듈을 사용하거나 복사하기 전에 실행된 검증 명령validate를 파라미터를 이용하여 미리 확인합니다.

총결산


모듈이랑 좀 친해진 것 같아!(^^)!

좋은 웹페이지 즐겨찾기