ansible 备忘清单(一)

笔者:
    把以前的手写笔记电子化吧,顺便当作复习。

 基础命令

命令

参数

备注

ansible

--version

查看版本号

ansible-doc

--help

查看帮助信息

-l |--list

查看所有模块

-s

查看模块摘要

Ansible servers

-I |--list

指定主机文件配置

-a

指定模块所需要的参数

-m

指定模块

Ansible-inventory

用于管理主机配置文件

-i

指定文件配置

--list

以默认的json格式列出所有主机

--graph

以图形界面输出主机清单

主机清单文件

默认配置文件位于/etc/ansible/hosts

[servers]  #定义一个主机组

192.168.1.1                                        #ip

node01                                               #主机名

192.168.1.2:23333                             #23333为ssh的默认端口

node02:23333                                

192.168.2.[100:200]                           #ip 范围

mst[10:20]                                          #主机名范围

192.168.3.[100:200]:23333                #IP范围内的所有主机,默认ssh口 23333

[t1]

169.254.1.1        http_port=808      

                         #  ~~~~~~~~~~~~~~

                          #   主机内的变量名=变量值

[uat]

node01

node02

[uat:vars]       

ntp-server=ntp1.aliyun.com          # uat组内公用同一个变量

[test]

controlplane env=prod
node01 env=dev    

playbook.yaml基本格式

- name: helloworld                #playbook名称

  hosts: test

  vars:

  gather_facts: True                #收集远程主机facts信息

  become: False                     #是否切换用户

  tasks:

    - name: helloworld  {{ ansible_date_time.iso8601_basic_short }}  

      copy:

         src:   /var/tmp/hello.tar.gz

         dest: /opt/h.tar.gz

    - name: Create the prod_engineer user
      user:
        name: prod_engineer
        comment: Prod engineer 
      when: '"prod" in env'           #只有在主机变量满足时才执行

    - name: Create the dev_engineer user and give admin
      user:
        name: dev_engineer
        comment: Dev engineer
        groups: admin
        generate_ssh_key: yes
        ssh_key_bits: 2048
        ssh_key_file: .ssh/id_rsa
      when: '"dev" in env'    

    - name: get shell result and set a variable

      shell: uptime22     

      failed_when: false                #执行失败时不执行后续的任务

      register: uptime_r     #将运行结果赋值给变量uptime_r

    - name: ping                        #上一个任务失败, 本任务不执行

      shell: ping baidu.com

     

 jinja2 file

run_once: yes                       # 参数表示只运行一次

delegate_to: localhost          #  任务只在ansible本机运行
 

  • for循环

{% for host in ansible_play_hosts_all %}

{{ host }}  #打印变量

{% endfor %}

  • if判断:

{% if 'day' in hostvars[host].uptime.stdout %}
 {{ hostvars[host].ansible_hostname }} - has not rebooted today
{% endif %}

ansible 备忘清单(一)_第1张图片

模块清单

忘记了就看ansible-doc -s [模块名]

模块

参数

用途

uri

用于测试到某站点到联通性,并返回结果        

url

需要测试的地址

return_content

是否返回结果(yes)

Dest

下载的文件放在指定的路径

debug

用于答应执行过程中的消息/变量

msg

基础消息

Var

变量 (register中定义的)或者 fasts收到的变量名 {{ ansible_date_time }}

group_by

根据facts (gather_facts中获得)中的某个字段进行分组

key

某个指定的字段

parents

可选,父级所属组

lineinfile

管理txt中的行数据

path

指定的文件

Regex

使用正则选取指定的行 '^var’

Line

替换指定的值

unarchive

用于文件解压

src

指定压缩包

dest

解压的绝对路径

archive

用于文件压缩

dest

生成的压缩包路径

path

要压缩的文件路径或者列表 (绝对路径)

Template

使用j2模版文件,并将特定文件传送到远程目录

src

j2模版文件,文件中可以加入变量

dest        

目的路径

setup

查看远程主机信息

Filter

查看指定的变量eg: ansible_date_time

shell

执行shell脚本,命令用分号; 隔开

ping

测试到主机的联通性

copy

用于文件复制

src

源路径

dest

目的路径

checksum

检查文件的一致性,sha1

file

管理文件&文件属性,可以创建文件夹,调整文件权限等

path

必须, 指定路径

state

touch 创建空文件,若已存在不处理

directory 创建目录,若已存在不处理

file 确保文件存在并具有指定属性

link 创建连接符号 src指定源路径

hard 创建应连接 src指定源路径

absent 删除文件或目录

src

指定源路径,搭配其他参数使用

owner

指定文件所有者

group

指定用户组

你可能感兴趣的:(查漏补缺,ansible)