网站内容要求,wordpress如何引入layui路径,帮忙制作网页的公司,丽水网站建设明恩玉杰Ansible Ansible 是基于 Python 开发#xff0c;集合了众多优秀运维工具的优点#xff0c;实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置#xff0c;无需部署任何客户端代理软件#xff0c;从而使得自动…Ansible Ansible 是基于 Python 开发集合了众多优秀运维工具的优点实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置无需部署任何客户端代理软件从而使得自动化环境部署 变得更加简单。可同时支持多台主机并行管理使得管理主机更加便捷 Ansible 的基本架构六大件 Ansible core 核心引擎即 Ansible 本身 Host Inventory 主机清单 用来定义 Ansible 所管理主机 默认是在 Ansible 的hosts 配置文件中定义被管理主机 同时也支持自定义动态主机清单和指定其它配置文件的位置 Connect plugin 连接插件 负责和被管理主机实现通信。除支持使用 SSH 连接被管理主机外 Ansible 还支持其它的连接方式 所以需要有连接插件将各个主机用连接插件连接到 Ansible Playbook yaml jinjia2 剧本 用来集中定义 Ansible 任务的配置文件 即将多个任务定义在一个剧本中由 Ansible 自动执行 可以由控制主机针对多台被管理主机同时运行多个任务 Core modules 核心模块是 Ansible 自带的模块使用这些模块将资源分发到被管理主机使其执行特定任务或匹配特定的状态 Custom modules 自定义模块 用于完成模块功能的补充 可借助相关插件完成记录日志、发送邮件等功能 Ansible与SaltStack的对比 1Ansible安装部署简单 2SaltStack响应速度快 3Ansible更安全 4对Windows的支持 5Ansible自身运维比较简单 部署ansible 角色 主机名 IP地址 配置 控制主机 ansible-node1 192.168.27.152 2c4g 被管理主机 ansible-node2 192.168.27.153 2c4g 被管理主机 ansible-node3 192.168.27.154 2c4g 干净的环境修改主机名
hostnamectl set-hostname ansible-node1
hostnamectl set-hostname ansible-node2
hostnamectl set-hostname ansible-node3 在第一台机器上安装Ansible
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum install -y ansible#查版本号即为安装成功
ansible --version ansible引用配置文件的优先级 # 优先级最高 ANSIBLE_CONFIG (一个环境变量) # 优先级次之 ansible.cfg (位于当前目录中) # 优先级次之 ansible.cfg (当前用户的家目录中) # 优先级最低 /etc/ansible/ansible.cfg 配置ansible的主机清单
vi /etc/ansible/hosts
#写在配置文件最后即可
192.168.27.153
192.168.27.154控制主机清单的主机
ansible all -m ping# all 为被控制机器的IP
# -m 操作的命令
# ping 测试网络是否通过 设置 SSH 无密码登录 为了避免 Ansible 下发指令时需要输入被管理主机的密码可以通过证书签名达到 SSH
无密码登录。使用 ssh-keygen 产生一对密钥并通过 ssh-copy-id 命令来发送生成的公钥
#生成密钥对
ssh-keygen -t rsa#连接被控制端的IP
ssh-copy-id 192.168.10.102 取消密钥对验证
vi /etc/ansible/ansible.cfg 把密码写进主机清单 省去密码操作
[rootansible-node1 ~]# cat /etc/ansible/hosts
192.168.27.153 ansible_ssh_userroot ansible_ssh_pass123456
192.168.27.154 ansible_ssh_userroot ansible_ssh_pass123456常用模块
[rootansible-node1 ~]# ansible all -a hostname
192.168.27.153 | CHANGED | rc0
ansible-node2
192.168.27.154 | CHANGED | rc0
ansible-node3
[rootansible-node1 ~]# [rootansible-node1 ~]# ansible all -a free -h
192.168.27.153 | CHANGED | rc0 total used free shared buff/cache available
Mem: 3.7G 175M 3.3G 11M 176M 3.3G
Swap: 2.0G 0B 2.0G
192.168.27.154 | CHANGED | rc0 total used free shared buff/cache available
Mem: 3.7G 177M 3.3G 11M 176M 3.3G
Swap: 2.0G 0B 2.0G
[rootansible-node1 ~]# 定义组
# 定义组写在主机清单中 例如我创建的两个组规划机器
[rootansible-node1 ~]# cat /etc/ansible/hosts [master]
192.168.27.153 ansible_ssh_userroot ansible_ssh_pass123456[node]
192.168.27.154 ansible_ssh_userroot ansible_ssh_pass123456
#操作组ansible node -m ping 可省略command模块其他模块都不可以 command是默认命令 还可以指定shell命令用来操作Linux命令 不可省略 user模块 创建用户
ansible all -m user -a nametest 删除用户
ansible all -m user -a nametest stateabsent#present 表示添加 (省略状态时默认使用)
#absent 表示移除。 group组模块
#被管理组 db里所有主机创建 mysql 组gid 为 306
ansible db -m group -a namemysql gid306 systemyes 设置周期任务 添加周期任务计划
ansible all \
-m cron \
-a minute*/10 job/bin/echo hello nametest cron job# name 周期任务的名字 列出周期任务 ansible all -m shell -a crontab -lcopy 模块 Ansible 中的 copy 模块用于实现文件复制和批量下发文件。其中使用 src 来定义本地源文件路径使用 dest 定义被管理主机文件路径使用 content 则是使用指定信息内容生成目标文件
#将 本 地 文 件/etc/fstab 复 制 到 被 管 理组 db里 的 所 有 主 机上 的/tmp/fstab.ansible所有者设置为 root权限设置为 640
ansible all \
-m copy \
-a src/etc/fstab dest/tmp/fstab.ansible ownerroot mode640 修改简单的内容
ansible all \
-m copy \
-a contentHello Ansible Hi Ansible\n dest/tmp/test.ansible file模块
#设置被管理组 dbsrvs 里所有主机中/tmp/fstab.ansible 文件的所属主为 mysql 所属组为 mysql权限为 644。
ansible all \
-m file \
-a ownermysql groupmysql mode644 path/tmp/fstab.ansible script模块 Ansible 中的 script 模块可以将本地脚本复制到被管理主机上进行运行。需要注意的是使用相对路径指定脚本位置
[rootansible-node1 ~]# cat test.sh
#!/bin/bash
echo ok
[rootansible-node1 ~]# chmod x test.sh
[rootansible-node1 ~]# ansible all -m script -a test.shservice模块 Ansible 中使用 service 模块来控制管理服务的运行状态。其中使用 enabled 表示是否开机自动启动取值为 true 或者 false使用 name 定义服务名称使用 state 指定服务状态取值有 started、stoped、restarted
ansible all \
-m service \
-a enabledtrue namechronyd statestartedansible all \
-m service \
-a enabledtrue namechronyd statestopped yum 模块 切换另外两台的yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 安装模块
ansible all -m yum -a nametree 卸载模块
ansible all -m yum -a nametree stateabsent palybook模块
[rootansible-node1 ~]# cat test.yaml
---
- hosts: allremote_user: roottasks:- name: install httpdyum: namehttpd statelatest- name: start httpdservice: namehttpd statestarted
ansible-playbook test.yaml 更好的移植性修改一下
[rootansible-node1 ~]# cat test.yaml
---
- hosts: allvars:package: httpdremote_user: roottasks:- name: install {{ package }}yum: name{{ package }} statelatest- name: start {{ package }}service: name{{ package }} statestarted
[rootansible-node1 ~]#