ansible使用记录

近期使用了ansible,在这简单记录一下ansible的使用

使用ansible-playbook的方式执行,首先编写剧本,定义好剧本中需要的变量

ansible-playbook -i vars test.yml

test.yml剧本中编写详细的操作,例如

- name:first ansible
  hosts: all
  gather_facts: no
  tasks:
  - name: mkdir
   # become: yes
   # become_user: "test"
    file:
       path: /tmp/test/
       state: directory
       mode: '755'
  - name: download package
    get_url:
       url: "{{pac_url}}"
       dest: /tmp/test/test.tar.gz
  - name: bak ozone
    command: bash -lc 'mv /tmp/test/ /tmp/test.bak.{{timestamp}}'
  - name: unarchive package
    unarchive:
       src: /tmp/test/test.tar.gz
       dest: /tmp/test/
       copy: no
       mode: 0755

vars中设置需要的变量信息如host,username,timestamp等

[all:vars]
ansible_ssh_user=root
ansible_ssh_pass=123456
timestamp="{{lookup('pipe', 'date +%Y%m%d%H%M%SZ')}}"
[all]
11.11.11.11
22.22.22.22
33.33.33.33

对使用到的ansible的模块信息作一下总结:

ansible的file模块

file:
  path: /tmp
  group: 定义文件的组信息
  owner: 定义文件的用户信息
  recurse: 是否递归执行
  src: 被链接的原文件路径,只适用于state类型是link
  dest: 被链接的目的文件路径,只适用于state类型是link
  state: directory
  mode: 755
state的状态可以表示对该文件的操作:
   directory: 如果目录不存在,创建目录
   file: 如果文件不存在,不创建
   link: 创建软连接
   hard: 创建硬连接
   touch: 如果文件不存在则创建文件,如果文件存在则修改文件的创建时间
   absent: 删除目录、文件或者取消链接文件

ansible的unarchive和archive模块

本模块主要是用来解压和压缩相关的文件
1.本模块能将本地主机的压缩包上传到远程主机上
2.能将远程主机上某个目录的压缩包解压到指定的目录
unarchive:
      copy: no|yes  no代表从远程解压到指定的目录,yes代表从本地复制到远程主机上
      src: 源路径 一般是写到具体的压缩包名
      dest: 主机上的解压的路径名
      mode:解压后的目录权限
archive:
     path: /path/test/111. 要压缩的文件和目录
     dest: /path/test/111.tar.gz 压缩后的文件
     format: bz2, gz, tar, xz, zip 指定的打包类型

ansible的get_url模块

本模块主要是通过url下载东西,类似于wget
get_url:
   dest: 文件的下载到的目的路径
   owner: 指定文件的用户
   group: 指定文件的组
   mode: 指定文件的权限
   force: yes | no  yes表示下载文件后,如果文件改变则覆盖这个文件,no表示只要该文件存在则不下载
   url: 下载的文件的url信息
   url_password: 如果下载文件时需要密码
   url_username: 下载文件时的用户名信息
   user_proxy: no | yes 如果是no则不使用代理,yes表示使用代理
   validate_certs: no | yes , no ssl证书不会被验证

ansible的copy模块

本模块主要是将ansible的管理主机上的文件copy到远程主机上
copy:
  src: 管理主机上的文件路径
  dest: 拷贝到远程主机上的文件路径
  force: yes | no, yes表示如果目标路径存在同名文件,并且和本地主机上的内容不同则覆盖,no表示不会覆盖,远程主机的文件保持不变
  backup: yes | no ,yes表示如果远程主机上存在该文件,并且内容和要拷贝的内容不同,则将远程主机上的文件备份,no表示不备份
  owner: 指定拷贝文件后的用户信息
  group:指定拷贝文件后的组信息
  mode: 指定拷贝后的文件的权限信息

ansible获取时间戳

定义变量:
   timestamp="{{lookup('pipe', 'date +%Y%m%d%H%M%SZ')}}”
使用变量:
   "{{timestamp}}"

持续更新中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做一个offer收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值