Ansible


GitHub Actions¤Çansible playbook¤Î¼Â¹Ô

µ­»ö:


fail:¤ÎÂå¤ï¤ê¤Ëdebug:¤ò»È¤Ã¤Æ¥á¥Ã¥»¡¼¥¸¤ò¸«¤ä¤¹¤¯É½¼¨¤¹¤ë


csv/tsv¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤ó¤Ç½èÍý

    - name: read tsv
      read_csv:
        path: "{{ tsv_path }}"
        delimiter: "\t"
      register: lines
      delegate_to: localhost


    - name: output tsv with filter
      debug:
        var: item
      when:
        item['colum 1'] != ""
      with_items: "{{ lines.list }}"

ansible¤Î½ÐÎϤòjson¤Ë¤·¤Æ¡¢jqÅù¤Ç²Ã¹©


collection: playbook, role, module, plugin¤ò´Þ¤à

module¤È¤Î°ã¤¤

¤è¤¯»È¤¦collection

µ­»ö:


warning¤òɽ¼¨¤¹¤ë


async, poll: ÈóƱ´ü¼Â¹Ô¡¢¥Ý¡¼¥ê¥ó¥°


Mitogen for Ansible: ºÇÂç25Çܹ⮲½


slurp: remote¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤òÆɤà


¥Ç¥Ð¥Ã¥°ÊýË¡


¼Â¹Ô·ë²Ì¤ò¥í¥°¤Ë»Ä¤¹


synchronize: rsync¤Ç¥Õ¥¡¥¤¥ë¥³¥Ô¡¼


copy module¤Îcontent¤Ç²þ¹Ô¤¬¾Ã¤¨¤ë¡£


¥³¥Þ¥ó¥É¤Î¸ºß¥Á¥§¥Ã¥¯


¥Í¥Ã¥È¥ï¡¼¥¯µ¡´ï¤Î´ÉÍý


terraform.tfstate¤ÎÃͤò»²¾È


defaultÃͤòÄêµÁ¤¹¤ë


¥È¥ì¡¼¥Ë¥ó¥°/¥µ¥ó¥×¥ë


¥Ç¥Õ¥©¥ë¥È¤Î¸¡º÷¥Ñ¥¹


vars_prompt, vars_files, --extra-vars ¤ÇÇÛÎóÅù¤òÅϤ¹


¹½Ê¸¥Á¥§¥Ã¥¯


patch: ¥Ñ¥Ã¥Á¤òŬÍѤ¹¤ë


WSL´Ä¶­


parse_cli/parse_cli_textfsm: ¥³¥Þ¥ó¥É¤Î·ë²Ì¤ò²òÀϤ·¤ÆÊÑ¿ô¤Ë¼è¤ê¹þ¤à

JSON¤Ç½ÐÎϤǤ­¤Ê¤¤¥³¥Þ¥ó¥É¤Î·ë²Ì¤ò²òÀϤ·¤Æ¡¢ÊÑ¿ô¤ËÊÑ´¹¤·¤Æ¤¯¤ì¤ë¡£
²òÀÏÍѥƥó¥×¥ì¡¼¥È¤òÍÑ°Õ¤¹¤ë¤¬¡¢¥á¥¸¥ã¡¼¤Êµ¡´ïÍѤΥƥó¥×¥ì¡¼¥È¤Ï´û¤Ë¤¢¤ë¡£


package: OSËè¤Î¥Ñ¥Ã¥±¡¼¥¸´ÉÍý¤ò°ì¸µ²½


run_once: ¥Û¥¹¥È¤¬Ê£¿ôÂ椢¤Ã¤Æ¤â1²ó¤·¤«¼Â¹Ô¤·¤Ê¤¤


ini_file: ini¥Õ¥¡¥¤¥ë¤Î½ñ¤­´¹¤¨


Terraform¤È¤ÎÏ¢·È

Memo/Terraform¤ÇAWS EC2¤òµ¯Æ°¤·¤Æ¡¢ansible-playbook¤ò¼Â¹Ô¤·¤¿¤¤»þ¤Ê¤É¡£


apt: Debian/UbuntuÅù¤Î¥Ñ¥Ã¥±¡¼¥¸´ÉÍý

  apt:
    name: "{{ apt_packages  }}"
    state: "{{ item.state }}"
    update_cache: yes
    cache_valid_time: 3600

vars_prompt¤Ç¥«¥ó¥Þ¶èÀÚ¤êʸ»úÎó¤òÇÛÎó¤ËŸ³«¤¹¤ë


include¤ÎÂå¤ï¤ê¤Ëimport_tasks, include_tasks¤ò»È¤¦

[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 'import_tasks' for static inclusions or 'include_tasks' for 
dynamic inclusions. This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False 
in ansible.cfg.

Including and Importing — Ansible Documentation


pause: »ØÄꤷ¤¿ÉÃ/ʬ¤À¤±ÂԤġ¢ÃæÃǤä³¹Ô¤òÁªÂò


yum_repository: yum¥ê¥Ý¥¸¥È¥ê¤ÎÄɲÃ/ºï½ü

- name: Remove repository from a specific repo file
  yum_repository:
    name: epel
    file: external_repos
    state: absent

include_role: roleÆâ¤ÎÊÌtask¤òload¤¹¤ë

tasks/main.yml ¤È¤ÏÊ̤Îyaml¤òload¤Ç¤­¤ë¡£ tasks¤òʬ³ä¤·¤Æ¡¢ÉáÃʤϼ¹Ԥµ¤ì¤Ê¤¤½èÍý¤òʬ¤±¤é¤ì¤ë¡£


¥Æ¥­¥¹¥È¤ÎÃÖ´¹


ansible-container: docker image¤ÎºîÀ®


docker¤ÎÁàºî


reboot: playbookÃæ¤ËºÆµ¯Æ°


block: Ê£¿ô¤Î¥¿¥¹¥¯¤Î¥Ö¥í¥Ã¥¯²½


fact¤ÎºÆ¼èÆÀ

¡Ösetup¡×¤ÎºÆ¼Â¹Ô¤ÇÎɤ¤ ưŪ¤ËNIC¤òÄɲä·¤¿¸å¤Ë¡¢fact¤Ë¤âÈ¿±Ç¤µ¤»¤¿¤¤¾ì¹ç¤Ê¤É¡£


group_by: ưŪ¤Ëgroup¤òÊѹ¹¤¹¤ë

Î㤨¤Ð¡Öconnection: local¡×¤À¤¬¡¢Ê£¿ô¤Î¡Ögroup_vars/env.yml¡×¤ò´Ä¶­Ëè¤ËÀÚ¤êÂؤ¨¤¿¤¤»þ¤Ë»È¤¨¤ë¡£
»ØÄꤷ¤¿group_varsÆâ¤ÎÊÑ¿ô¤¬»²¾È¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

  vars_prompt:
    - name: "inventory_group"
      prompt: "Please enter inventory_group"
      private: no

  tasks:
    - group_by: key="{{ inventory_group }}"
      changed_when: False

assemble: Ê£¿ô¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤«¤é°ì¤Ä¤ÎÀßÄê¤òºî¤ë

assemble - Assembles a configuration file from fragments ¡½ Ansible Documentation


uri: HTTP¥ê¥¯¥¨¥¹¥È¤ÎÁ÷¿®


jenkins¤«¤éansible¤Î¼Â¹Ô


no_log: ¥í¥°¤ò½ÐÎϤ·¤Ê¤¤

¡Ö-v¡×¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤¿¤È¤­¤Ë¤â¥Ñ¥¹¥ï¡¼¥ÉÅù¤Ï¥³¥ó¥½¡¼¥ë¤Ëɽ¼¨¤·¤¿¤¯¤Ê¤¤¾ì¹çÅù¡£

  vars:
    - show_log: false
  tasks:
    - debug: msg="{{ item }}"
      with_items: "{{ huge_var }}"
      no_log: "{{ not show_log|bool }}"

fetch: ¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥«¥ë¤Ë¥³¥Ô¡¼


expect: ÂÐÏýèÍý¤Î¼«Æ°²½


wait_for: ½èÍý¤¬´°Î»¤¹¤ë¤Þ¤ÇÂÔµ¡¤¹¤ë


local¤Ë¤¢¤ërpm¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë


´û¸¥Õ¥¡¥¤¥ë¤ò¶õ(¥µ¥¤¥º0)¤Ë¤¹¤ë


¶õ¥Õ¥¡¥¤¥ë¤ÎºîÀ®

SSH¤Î¥í¥°¤«¤é¥¢¥¯¥»¥¹IP¤òÎóµó¤¹¤ë


¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷

yum¥â¥¸¥å¡¼¥ë¤Ç¤Ï¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß°ìÍ÷¤Ï¼èÆÀ¤Ç¤­¤ë¤¬¡¢°ìÉô¤Î¥Ñ¥Ã¥±¡¼¥¸¤À¤±¤Ï»ØÄê¤Ç¤­¤Ê¤¤¡£(name¤Èlist¤¬ÇÓ¾»ØÄê)


ssh¸ø³«¸°¤ÎÅÐÏ¿


¸½ºß¤Înameserver¤ò¼èÆÀ

/etc/resolv.conf¤Înameserver¤ÎÃͤò»²¾È¤·¤¿¤¤¡£


Ansible2.0


Prompts: ¥æ¡¼¥¶ÆþÎϤòÂÔ¤Ä


Ǥ°Õ¤Îssh¥ª¥×¥·¥ç¥ó¤Ä¤±¤Æ¼Â¹Ô

ansible.cfgÆâ¤Ç¡Össh_args = ¡×¤ÇǤ°Õ¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄê¤Ç¤­¤ë¡£
¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¾å½ñ¤­¤µ¤ì¤ë¤¿¤á¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥ª¥×¥·¥ç¥ó+ÄɲäΥª¥×¥·¥ç¥ó¤È½ñ¤¤¤¿Êý¤¬Îɤµ¤½¤¦¡£
´Ä¶­ÊÑ¿ô¤Ë ANSIBLE_SSH_ARGS ¤¬¤¢¤ë¤È¡¢ansible.cfg¤è¤ê¤âÍ¥À褵¤ì¤ë¡£


³ÈÄ¥»Ò¤ò½ü¤¤¤¿¥Õ¥¡¥¤¥ë̾¤Î¼èÆÀ


tarball ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë


register¤Î·ë²Ì¤ò»È¤Ã¤ÆÊ£¿ô²ó¥ë¡¼¥×¤¹¤ë


1.9¤«¤ésudo¤¬É¬Íפʻþ¤Ïbecome¤ò»È¤¦

root¸¢¸Â¤¬É¬Íפʾì¹ç¡¢1.9¤«¤é¡Öbecome: yes¡×¤¬¿ä¾©¡£
¡Ösudo: true¡×¤ÏÈó¿ä¾©¤Ë¤Ê¤Ã¤¿¡£


Ť¤¹Ô¤ò²þ¹Ô¤¹¤ë


¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¥Á¥å¡¼¥Ë¥ó¥°


validate:ÀßÄê¥Õ¥¡¥¤¥ëÅù¤Î¸¡¾Ú¤·¤Æ¤«¤é¹¹¿·


yum groupinstallÁêÅö


Extras Modules¤ò»È¤¦


ssh¤Ç·Ò¤¬¤ºlocal¤Ç¼Â¹Ô


¥Ñ¥Ã¥±¡¼¥¸¤¬¥¤¥ó¥¹¥È¡¼¥ëºÑ¤ß¤«¤Î¥Á¥§¥Ã¥¯


Êѹ¹°·¤¤¤Ë¤·¤Ê¤¤


handlers


roles


³«È¯


°Í¸´Ø·¸


¼«ºî¥â¥¸¥å¡¼¥ë

Developing Modules — Ansible Documentation


´Ä¶­ÊÑ¿ô¤Î»ØÄê


shell:/command: ¥³¥Þ¥ó¥É¤Î¼Â¹Ô


shell:¤äcommand:Æâ¤ÇÊ£»¨¤Ê½èÍý



shell:Ãæ¤Çread¥³¥Þ¥ó¥É¤¬¤¢¤Ã¤Æ¤âÂÔµ¡¤·¤Ê¤¤


SELinux

target uses selinux but python bindings (libselinux-python) aren't installed!


split: ʸ»úÎó¤Îʬ³ä


--check»þ¤ËµóÆ°¤òÊѹ¹¤¹¤ë

°Ê²¼¤Î¤è¤¦¤Ë¡¢shell: ¤Î·ë²Ì¤ò¸µ¤ËȽÄꤹ¤ë¤è¤¦¤Ê¾ì¹ç¡¢¡Ö--check¡×¤Ç¤Ï¡¢¥Á¥§¥Ã¥¯task¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤¿¤á¡¢¥¨¥é¡¼¤È¤Ê¤ë¤Î¤ò²óÈò¤¹¤ë¡£


ansible-playbook¥ª¥×¥·¥ç¥ó


¥Õ¥¡¥¤¥ë/¥Ç¥£¥ì¥¯¥È¥ê¤Î¥³¥Ô¡¼


¼Â¹Ô½ç½ø


Module ¥â¥¸¥å¡¼¥ë

file


Conditionals: ¾ò·ïʬ´ô


Error Handling ¥¨¥é¡¼¥Ï¥ó¥É¥ê¥ó¥°


¿·µ¬¥Õ¥¡¥¤¥ë¤òºî¤ë


ÆÃÄê¥æ¡¼¥¶¤À¤±¥ê¥â¡¼¥Èssh¤«¤ésudo¤Ç¤­¤ë¤è¤¦¤Ë

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïtty¤Ê¤·¤Îssh¤Ç¤Ï¡¢sudo¤Ç¤­¤Ê¤¤¤è¤¦¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤¬Â¿¤¤¡£


ping module¤ÇÀܳ¥Æ¥¹¥È


¿ÃÊssh´Ä¶­¤Ç¼Â¹Ô

Àܳ¤Ëssh¤ò»È¤¦¤è¤¦¤Ë¤·¡¢ssh¦¤Ç¿ÃÊÀßÄê¤ò¤¹¤ë¡£
¥Û¥¹¥È¤ÎÀܳ¤Ë¤Ï̾Á°¤ò»È¤¦¡£DNS¤ÏÉÕ¤±¤Ê¤¯¤Æ¤âÎɤ¤¡£


Ê£¿ô¥µ¡¼¥Ð¤Îrpm¥Ð¡¼¥¸¥ç¥ó¤ÎÄ´ºº¤È¹¹¿·


YAMLÃæ¤Ç¥³¥í¥ó(:)¤òÆþ¤ì¤ë¤È Syntax Error

YAMLÃæ¤Ç"foo: bar"¤Îʸ»úÎó¤À¤ÈSyntax Error¤¬È¯À¸¤¹¤ë¡£"foo:bar"¤ÏÌäÂê¤Ê¤¤¡£


debug : ¥Ç¥Ð¥Ã¥°¥á¥Ã¥»¡¼¥¸¤Î½ÐÎÏ


tags : ¥¿¥°¤òÉÕ¤±¤Æ¼Â¹Ô¤¹¤ë¥¿¥¹¥¯¤ò»ØÄꤹ¤ë


ÆÃÊ̤ʥ¿¥°

Î㤨¤Ðpre_task:¤Ç¥Á¥§¥Ã¥¯½èÍý¤ò¤·¤Æ¤¤¤ë¾ì¹ç¡¢-t ¤Ç¥¿¥°»ØÄꤷ¤¿¾ì¹ç¼Â¹Ô¤µ¤ì¤Ê¤¤¡£


Inventory ¥Õ¥¡¥¤¥ë


¥Û¥¹¥È¤ò»ØÄꤷ¤Æ¼Â¹Ô


IP¥¢¥É¥ì¥¹¤Ë̾Á°¤òÉÕ¤±¤ë

vim hosts.ini
----
[web]
web01 ansible_ssh_host=192.168.61.101
----

ansible -i hosts.ini -m ping web01

¥°¥ë¡¼¥×Ëè¤Ë°Û¤Ê¤ëÊÑ¿ô¤ò»È¤¦


¥Û¥¹¥È¤Î¥°¥ë¡¼¥×²½


¼Â¹Ô¾ò·ï¤ò»ØÄꤹ¤ë


ÆÃÄê¹Ô¤Î¥³¥á¥ó¥È¥¢¥¦¥È


źÉÕ¥Õ¥¡¥¤¥ë: fileaws.ec2.list-instance.zip 1804·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2024-03-04 (·î) 18:03:24