| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Ansible自动化运维工具使用详解 -> 正文阅读 |
|
[系统运维]Ansible自动化运维工具使用详解 |
环境准备: 3台主机 ????1个控制节点 两个被控制节点 解析:本地互相解析(三台机器都配置) vim /etc/hosts 192.168.11.191 server????控制节点 192.168.11.192 slave-1???被控制节点 192.168.11.193 slave-2???被控制节点 配置完解析后在配置ssh公钥认证:控制节点需要发送ssh公钥给所有被控制节点 ssh-keygen ssh-copy-id -i 192.168.11.192 ssh-copy-id -i 192.168.11.193 所有机器: systemctl stop firewalld && setenforce 0???关闭防火墙和selinux 安装:控制节点 1. 配置EPEL网络yum源 yum install -y epel-release 2.安装ansible yum install -y ansible 3.查看帮助 ansible --help 4.查看版本 ansible --version ansible---inventory主机清单 官方文档: http://docs.ansible.com/ansible/intro_inventory.html#> inventory文件通常用于定义要管理主机的认证信息,例如ssh登录用户名、密码以及key相关信息 查看配置文件: rpm ?-qc ansible -q:---query查询 1.主配置文件: /etc/ansible/ansible.cfg ?#主要设置一些ansible初始化的信息,比如日志存放路径、模块、等配置信息 2.主机清单文件: 默认位置/etc/ansible/hosts 1.添加主机或者主机组: vim /etc/ansible/hosts ?#在最后追加被管理端的机器 slave-1?????????????????????#单独指定主机,可以使用主机名称或IP地址 2.添加主机组: [slave] ???????#使用[]标签指定主机组 ----标签自定义 192.168.11.192???????#如果未解析添加ip slave-2?????#解析添加主机名 3.为一个组指定变量,组内每个主机都可以使用该变量: [slave:vars] ????????#设置变量,vars-- ansible_ssh_port=22 ???? ansible_ssh_user=root ?? ansible_ssh_private_key_file=/root/.ssh/id_rsa ? ansible_ssh_pass=test ?????#也可以定义密码,如果没有互传秘钥可以使用密码。 Ansible Inventory 常见的内置参数: 查看组内主机列表: 语法:ansible ?组名 ?--list-hosts ansible slave?--list-hosts 使用ping模块检查ansible节点的连通性: 指定单台机器 ansible slave-1 -m ping -o??? 同时指定多台机器: ansible slave-1,slave-2?-m ping -o 执行shell命令: ansible slave-1?-m shell -a 'uptime' 不加 -m ?默认是 command 模块 ansible slave-1 -a 'uptime' 重定向输出到本地文件中: ansible slave-1 -m shell -a 'df -Th' > /opt/a.txt 常用模块 1.远程复制备份模块:copy 模块参数详解: ? src=:指定源文件路径 dest=:目标地址(拷贝到哪里) owner:指定属主 group:指定属组 mode:指定权限,可以以数字指定比如0644 backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no vim a.txt ?#创建一个测试文件 123123 ansible slave -m copy -a 'src=/root/a.txt dest=/opt owner=root group=root mode=644' -o vim a.txt ?#追加如下内容 123123 321321 ansible slave -m copy -a 'src=/root/a.txt dest=/opt/ owner=root group=root mode=644 backup=true' -o 注释:如果文件没有变化,不会备份。只有文件内容不同,才会做备份。 登录被控制机器其中一台查看 ? 第一次 ? 第二次 2.软件包管理 yum模块 安装apache ansible slave-1 -m yum -a "name=httpd state=latest" -o state= ????#状态是什么,干什么 state=absent ??????用于remove安装包 state=latest ??????表示最新的 state=removed ?????表示卸载 到被控制节点看一下 卸载软件: ansible slave-1 -m yum -a "name=httpd state=removed" -o 到被控制节点看一下 3.服务管理service模块 ansible slave-1 -m service -a "name=httpd state=started" #启动 ansible slave-1 -m service -a "name=httpd state=stopped" #停止 ansible slave-1 -m service -a "name=httpd state=restarted" #重启 ansible slave-1 -m service -a "name=httpd state=started enabled=yes" #开机启动 ansible slave-1 -m service -a "name=httpd state=started enabled=no" ?#开机关闭 4.文件模块file 模块参数详解: ? owner:修改属主 group:修改属组 mode:修改权限 path=:要修改文件的路径 recurse:递归的设置文件的属性,只对目录有效 ????????yes:表示使用递归设置 state:??创建新的文件或者目录 touch:创建一个新的空文件 directory:创建一个新的目录,当目录存在时不会进行修改 #创建一个文件 ansible?slave-1?-m file -a 'path=/opt/aaa.txt mode=777 state=touch' 到被控制节点看一下? #创建一个目录 ansible slave-1?-m file -a 'path=/opt/aaa?mode=777 state=directory' 到被控制节点看一下 5.收集信息模块setup ansible slave-1?-m setup ?#收集所有信息 ansible slave-1?-m setup -a 'filter=ansible_python_version'???只查询ansible版本信息filter过滤 ?? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:36:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |