ansible安装配置及常用命令

    科技2024-10-31  16

    ###################### Ansible 自动化运维工具 ######################

    一、ansible简述

    1、客户端不用安装,不用做任何操作,是基于SSH协议来管理的

    2、Ansible是基于python语言开发的自动化运维工具,2015年被红帽公司以1.5亿美金收购,工作方式为C/S架构,但客户端不用安装任何工具、插件。只要安装了openssh即可。

    3、Ansible 自动化工具工作流程和原理: Ansible运维工具是C/S架构,在Server商品安装Ansible软件程序,通过软件程序调用本地模块或插件,读取本地Hosts列表文件(记录客户端的IP列表),基于SSH协议远程连接客户端,将任务发送给客户端,让客户端执行发送的任务,最终返回执行结果。

    二、ansible特点:

    轻量级, 基于SSH协议 不需要去客户端安装AGENT 批量执行脚本,不用放到被控节点中 基于PYTHON编写,维护更简单 支持sudo普通用户命令 去中心化管理 服务端与客户端互不影响

    三、安装配置

    python 2.6以上

    [root@localhost ~]#yum install epel-release [root@localhost ~]#yum install ansible [root@localhost ~]# rpm -qa|grep ansible ansible-2.9.13-1.el7.noarch

    配置文件 /etc/ansible/ansible-cfg

    inventory =/etc/ansible/hosts 被控端IP列表 library =/usr/share/my_modules ansible模块 remote_tmp 定义临时缓存文件 forks =5 并行进程数,即同时操作的被控端数 sudo_user =root sudo远程执行用户名 ask_sudo_pass=true 使用sudo,是否需要输入密码 system_warnings = False deprecation_warnings = False command_warnings = False nocolor=1 1为打开颜色

    四、ansible使用方法

    1、修改默认命令为shell

    vim /etc/ansible/ansible-cfg

    command_name = shell 改默认模块名称 command_warnings=False 支持警告

    2、建组

    hosts里加[] [root@localhost ~]# cat /etc/ansible/hosts

    [lvs] 192.168.1.10 ansible_user=admin ansible_password=123456 192.168.1.11 [mysql] 192.168.0.12 192.168.0.13 [php-fpm] 192.168.0.14 192.168.0.15

    使用

    [root@localhost ~]#ansible php-fpm -m command -a "mysql install -y php-fpm php php-devel"

    3、常见命令

    所有机器

    ansible all -m command -a "df -h"

    部分主机,网段

    ansible 192.168.0.* -m command -a "df -h"

    两台

    ansible 192.168.0.10192.168.0.11 -m command -a "df -h"

    五、ansible模块使用

    yum模块安装

    #ansible lvs -m yum -a "name=epel-release,ntp status=install" -vvvv

    vvvv 显示详细过程

    copy模块

    #ansible php -m copy -a "src=/data/autoinstallphp.sh dest=/data/autoinstallphp.sh mode=0755"

    复制,改权限,改宿主及组,备份旧文件

    #ansible php -m copy -a "content='hello' dest=/tmp/aaa mode=644 owner=nginx group=nginx backup=yes"

    删除文件及目录

    #ansible php -m file -a "path=/tmp/212 state=absent"

    synchronize模块 数据同步 只改变才会覆盖,可增量、可空目录 同步本地文件至php远程机器中

    #ansible php -m synchronize -a "src=/tmp/ dest=/tmp/"

    同步时,删除客户端中源端没有的文件及目录

    #ansible php -m synchronize -a "src=/tmp/ dest=/tmp/ delete=yes"

    另:免密设置

    ################# 免密钥配置 ############# ssh-keygen 全部回车 ls /-l /root/.ssh/id_rsa 钥匙,私钥 ls /-l /root/.ssh/id_rsa.pub 锁,公钥 ssh-cp-id -i /root/.ssh/id_rsa.pub 192.168.1.142 把锁给别人,自己拿钥匙解锁 #################

    ----------------------------------end

    Processed: 0.041, SQL: 8