ansible笔记

ansible是一个轻量化的运维自动化管理工具,可以批量管理服务器.由python开发,只支持python2.X,建议使用python2.7.


1.安装ansibile

pip install ansibile

查看ansible是否安装成功

默认配置文件在 /etc/ansible

/etc/ansible
├── ansible.cfg  #配置文件
├── hosts        #主机列表文件
└── roles 	      #roles(角色)文件夹

编辑ansible.cfg启用下面的配置


# 开启日志功能
log_path = /var/log/ansible.log

# 检查对应服务器的host
 host_key_checking = False

添加主机列表

vim hosts
[test]
192.168.0.125

可以在hosts里添加公共变量,后续编写playbook的时候可能会用到
在这里插入图片描述
ansible是基于ssh的方式进行控制,所以被控端要进行免密登录

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 端口 root@IP

2.ansible各种模块
在这里插入图片描述
下面是一些简单的demo
https://www.cnblogs.com/ExzaiTin/p/7918415.html 别人写的模块大全可以接见一下.

ansible all -m 'ping'
ansible all -a 'ls' #默认是command模块

2.ansible的playbook
playbook(剧本)是使用yaml语法的任务执行脚本,可以采用jinja2作为模版,多个playbook组成的叫做roles,可以在 https://galaxy.ansible.com/下载各种roles,里面有各种常用的生产环境,当然也可以自己编写 roles.
下面编写一个带变量的demo的playbook

执行方式:ansible-playbook playbook.yml [options] 

-u REMOTE_USER, --user=REMOTE_USER  
# ssh 连接的用户名
 -k, --ask-pass    
#ssh登录认证密码
 -s, --sudo           
#sudo 到root用户,相当于Linux系统下的sudo命令
 -U SUDO_USER, --sudo-user=SUDO_USER    
#sudo 到对应的用户
 -K, --ask-sudo-pass     
#用户的密码(—sudo时使用)
 -T TIMEOUT, --timeout=TIMEOUT 
# ssh 连接超时,默认 10 秒
 -C, --check      
# 指定该参数后,执行 playbook 文件不会真正去执行,而是模拟执行一遍,然后输出本次执行会对远程主机造成的修改

 -e EXTRA_VARS, --extra-vars=EXTRA_VARS    
# 设置额外的变量如:key=value 形式 或者 YAML or JSON,以空格分隔变量,或用多个-e

 -f FORKS, --forks=FORKS    
# 进程并发处理,默认 5
 -i INVENTORY, --inventory-file=INVENTORY   
# 指定 hosts 文件路径,默认 default=/etc/ansible/hosts
 -l SUBSET, --limit=SUBSET    
# 指定一个 pattern,对- hosts:匹配到的主机再过滤一次
 --list-hosts  
# 只打印有哪些主机会执行这个 playbook 文件,不是实际执行该 playbook
 --list-tasks   
# 列出该 playbook 中会被执行的 task

 --private-key=PRIVATE_KEY_FILE   
# 私钥路径
 --step    
# 同一时间只执行一个 task,每个 task 执行前都会提示确认一遍
 --syntax-check  
# 只检测 playbook 文件语法是否有问题,不会执行该 playbook 
 -t TAGS, --tags=TAGS   
#当 play 和 task 的 tag 为该参数指定的值时才执行,多个 tag 以逗号分隔
 --skip-tags=SKIP_TAGS   
# 当 play 和 task 的 tag 不匹配该参数指定的值时,才执行
 -v, --verbose   
#输出更详细的执行过程信息,-vvv可得到所有执行过程信息。

编写一个playbook

 vim test.yml
---
- hosts: ss
  remote_user: root
 # 任务列表
  tasks:
    - name: install packge
      yum: name={{ package }} 
      # 判断语句
      when: ansible_os_family == 'RedHat'
      tags: install
      # 任务运行后为changed 就调用对应的handlers
      notify: restart service
    - name: create some txt
      tags: txt
      file: dest=/root/{{ item }} state=touch
      #  循环
      with_items:
        - 1.txt
        - 2.txt


      
  # 对应的触发器
  handlers:
    - name: restart service
      service: name={{ package }} state=restarted

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值