zoukankan      html  css  js  c++  java
  • Ansible常用的Ansible Module

    易于

    易于 模块的英文给的Debian,Ubuntu等作业系统(OS)使用等套件模组(包装模块),我们可以通过它管理易于套件。其类似Linux的指令有apt,apt-get,aptitude和dpkg。

    PS:系统需求:需先安装python-apt(python2)或python3-apt(python 3)的apt套件。

    1、更新套件索引(快取),等同于apt-get update指令。

    - name: Update repositories cache
     apt:
        update_cache: yes
    

    2、安装Vim套件

    - name: Install the package "Vim"
     apt:
        name:vim
        state: present
    

    3、移除nano套件

    - name: Remove "nano" package
     apt:
        name:nano
        state:absent
    

    命令

    命令 模块是个可以在远端上执行指令等指令模组(Commands Modules),Linux Shell会用等指令都可以通过它使用,但它不支持变量和 <,>,|,;和&等运算,若有这类需求该用shell模块。

    1、重新开机

    - name: Reboot at now
     command: /sbin/shutdown -r now
    

    2、当某个文件不存在是才执行该指令

    - name: create .ssh directory
     command:mkdir .ssh creates=.ssh/
    

    3、先切换目录再执行指令

    - name: cat /etc/passwd
     command: cat passwd
     args:
        chdir: /etc
    

    复制

    copy module是从本地复制文件到远端到文件模块(Files Modules),若有使用变量需求者,可改用 模版 模块,类似到Linux指令为 scp。

    1、复制ssh public key到远端(chmod 644 /target/file)

    - name: copy ssh public key to remote node
     copy:
        src: files/id_rsa.pub
        dest: /home/docker/.ssh/authorized_keys
        owner: docker
        group: docker
        mode: 0644
    

    2、复制ssh public key到远端(chmod u=rw,g=r,o=r /target/file)

    - name: copy ssh public key to remote node
     copy:
        src: files/id_rsa.pub
        dest: /home/docker/.ssh/authorized_keys
        owner: docker
        group: docker
        mode: "u=rw,g=r,o=r"
    

    3、复制nginx vhost设定档到远端,并备份原有到档案

    - name: copy nginx vhost and backup the original
     copy:
        src: files/ironman.conf
        dest: /etc/nginx/sites-available/default
        owner: root
        group: root
        mode: 0644
        backup: yes  

    文件

    文件 模块在远端建立和删除档案(文件),目录,软链接。其类似的Linux指令为chown,touch,rm,mkdir和ln。

    1、建立档案(touch),并设定档案权限为644

    - name: touch a file, and set the permissions
     file:
       path: /etc/motd
       state: touch
       mode: "u=rw,g=r,o=r"
    

    2、建立目录(mkdir),并设定档案拥有者为docker

    - name: create a directory, and set the permissions
     file:
       path: /home/docker/.ssh/
       state: directory
       owner: docker
       mode: "700"
    

    3、建立软链接

    - name: create a symlink file
     file:
       src: /tmp
       dest: /home/docker/tmp
       state: link
    

    lineinfile

    lineinfile module 是个可用正则表达式对档案进行插入或取代文字对档案模组(Files Modules)。其类似的Linux指令为 sed。

    1、移除docker的sudo权限

    - name: remove sudo permission of docker
     lineinfile:
       dest: /etc/sudoers
       state: absent
       regexp: '^docker'
    

    2、在/etc/hosts档案里用127.0.0.1 localhost 取代开头和结尾

    - name: set localhost as 127.0.0.1
     lineinfile:
       dest: /etc/hosts
       regexp:'^127.0.0.1'
       line: '127.0.0.1 localhost'
       owner: root
       group: root
       mode: 0644
    

    服务

    service module是个用来管理远端系统服务的系统模组(System Modules)。其类似的Linux指令为service。

    1、启用nginx

    - name: start nginx service
     service:
        name: nginx
        state: started
    

    2、停止nginx

    - name: stop nginx service
     service:
        name: nginx
        state: stopped
    

    3、重启网络服务

    - name: restart network service
     service:
         name: network
         state: restarted
         args: eth0

    Shell

    shell 模块在远端用/bin/sh 执行指令的指令模组(命令模块),支持变量和<,>,|, ;和&等运算。

    1、借由ls、wc检查档案数量

    - name: check files number
     shell: ls /home/docker/ | wc -l
    

    2、杀死所有python进程

    -name: kill all python process
     shell: kill -9 $(ps aux | grep ssh | awk '{ print $2 }')

    Stat

    stat module 是用来检查档案状态等档案模组(Files Modules)。其类似等Linux指令为 stat。

    1、检查档案是否存在,若不存在则建立它

    - name: check the 'vimrc' target exists
     stat:
        path: /home/docker/.vimrc
     register: stat_vimrc
    
    - name: touch vimrc
     file:
       path: /home/docker/.vimrc
       state: touch
                mode: "u=rw,g=r,o=r"
    when: stat_vimrc.stat.exists == false
    

    2、获取某档案等md5sum

    - name: Use md5sum to calculate checksum
     stat:
        path: /path/to/something
        checksum_algorithm: md5sum
    

      

  • 相关阅读:
    java如何将char类型的数字转换成int型的数字,而不是Ascii
    java 二分查找的注意事项
    IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
    java中Math的常用方法整理
    判断字符串是否可由重复子字符串组成
    P3558 [POI2013]BAJ-Bytecomputer
    BZOJ 3329. Xorequ
    Codeforces 1221F. Choose a Square
    Codeforces 1221E. Game With String
    Codeforces 1221D. Make The Fence Great Again
  • 原文地址:https://www.cnblogs.com/winnerREN/p/13781873.html
Copyright © 2011-2022 走看看