添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

官方的话不会说,基本都是自己理解的。有误请指出 谢谢 O(∩_∩)O

ansible工具,原理就是通过ssh协议远程连接到对方的主机上,将本地的脚本(模块) 拷贝过去并执行你写好的命令的一个工具

考虑到服务器上yum源大部分不能使用,这里rpm安装

链接:https://pan.baidu.com/s/1YfEiWwB-NOXnCG0aXHYEHg
提取码:kp9l
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V5的分享

192.168.1.20      centos7.6   主控端

192.168.1.21      centos7.6   被控端

192.168.1.22      centos7.6   被控端

环境初始化(所有主机)

#关防护墙
systemctl stop firewalld && systemctl disable firewalld
#检测虚拟内存是否关闭,因为防止容器运行再虚拟内存
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
#不使用本地源,改用阿里源(虽然慢了点,但不是很缺东西)
cd /etc/yum.repos.d/ && mkdir backup && mv * backup
#拉取阿里源
wget -O/etc/yum.repos.d/aliyun-yilai.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#(没有设置虚拟机联通外网的可能会做不了这步),后续会写个专门设置网络的
#清除阿里云yum源内网域名
sed -i '/mirrors.cloud.aliyuncs.com/d' /etc/yum.repos.d/aliyun-yilai.repo 
#阿里云为了节省外网流量,切换为阿里云编辑好的centos镜像源时会带有内网镜像源域名
#外网用户虽然功能不会受到影响,但是会报Couldn't resolve host 'mirrors.cloud.aliyuncs.com'
#影响速度,故去掉
#重新建立缓存
yum clean all 
yum makecache   #这个会有点慢

1. 安装 ansible (版本2.9.9)

#上传软件包
[root@k8s-master01 ~]# ls
ansible.zip
[root@k8s-master01 ~]# pwd
/root
#解压ansible.zip
unzip ansible.zip
#本地安装
yum -y localinstall *
#登陆配置目录
[root@k8s-master01 ansible]# cd /etc/ansible/
[root@k8s-master01 ansible]# ls
ansible.cfg  hosts  roles
#文件含义
ansible.cfg   #ansible配置文件,默认基本不用动,全注释
hosts         #主机清单文件,存放被控端主机信息, 默认指定的hosts文件
roles         #自带的角色目录,目前为空

修改ansible配置

[root@k8s-master01 ansible]# vim ansible.cfg 
71 host_key_checking = False    #将注释去掉
#作用: 类似于,在ssh对方主机的时候需要输入yes,这里开启后不需要输入yes

添加主机列表清单

[root@k8s-master01 ansible]# vim hosts 
[web]
192.168.1.20 ansible_ssh_user=root ansible_ssh_pass=123
192.168.1.21 ansible_ssh_user=root ansible_ssh_pass=123
192.168.1.22 ansible_ssh_user=root ansible_ssh_pass=123
192.168.1.20           #被控端主机ip
ansible_ssh_user=root  #ssh中setup模块的系统变量,指定为远程主机的用户为root
ansible_ssh_pass=123   #同上,为远程主机的root的密码

1. 使用ping模块检测所有主机是否存活

ansible -i hosts web -m ping #语句含义 -i hosts web #指定我们ansible工具针对的是 hosts主机文件中的 web组下的节点进行操作 -m ping #-m 指定使用的模块为ping,用于检测主机,返回pong

列出主机清单

[root@k8s-master01 ansible]# ansible all --list
  hosts (3):
    192.168.1.20
    192.168.1.21
    192.168.1.22

#查看模块帮助

#查看详细帮助
ansible-doc ping
#查看简单帮助信息
ansible-doc -s ping

2. ansible命令执行的过程说明

1. ansible会先加载配置/etc/ansible/ansible.cfg文件
2. 然后加载模块文件(如上面的ping模块)
3. ansible会将我们执行的命令或模块,生成一个临时的python的脚本文件,将这个脚本文件发送到被控端的家目录/.ansible/tmp/目录下,并授权执行
4. 执行完成后返回执行结果,并清除临时文件

 我们来抓一下看看

ansible  web -a "sleep 10"

3. 常用模块

1. command 模块

说白了,这个模块就是相当于我们平时使用命令的习惯,比如ls、cd、pwd、cp、mv操作等等都可以实现

并且该模块是默认附加的,也就是说。即使你不加-m command 也可以使用

#查看web组所有主机下,/root目录内容
ansible -i hosts web -a "ls /root"
#-a 是代表要执行的命令,相当于在所有主机上执行的
[root@k8s-master01 ansible]# ansible -i hosts web -a "ls /root"
192.168.1.22 | CHANGED | rc=0 >>
anaconda-ks.cfg
initial-setup-ks.cfg
192.168.1.20 | CHANGED | rc=0 >>
ansible
ansible.zip
anaconda-ks.cfg
initial-setup-ks.cfg
192.168.1.21 | CHANGED | rc=0 >>
anaconda-ks.cfg
initial-setup-ks.cfg
[root@k8s-master01 ansible]# ansible -i hosts web -m command -a "ls /root"
192.168.1.22 | CHANGED | rc=0 >>
anaconda-ks.cfg
initial-setup-ks.cfg
192.168.1.21 | CHANGED | rc=0 >>
anaconda-ks.cfg
initial-setup-ks.cfg
192.168.1.20 | CHANGED | rc=0 >>
ansible
ansible.zip
anaconda-ks.cfg
initial-setup-ks.cfg
#可以看到,效果是一样的,但是为了养成习惯我们还是加上-m command来使用
#command模块是不支持正则及特殊符号的
[root@k8s-master01 ansible]# ansible -i hosts web -m command -a "echo 11 > /mnt/1.txt"
192.168.1.21 | CHANGED | rc=0 >>
11 > /mnt/1.txt
192.168.1.22 | CHANGED | rc=0 >>
11 > /mnt/1.txt
192.168.1.20 | CHANGED | rc=0 >>
11 > /mnt/1.txt
#好像看起来执行成功了,我们来看看是否成功
[root@k8s-master01 ansible]# ansible -i hosts web -m command -a "ls /mnt"
192.168.1.21 | CHANGED | rc=0 >>
192.168.1.20 | CHANGED | rc=0 >>
192.168.1.22 | CHANGED | rc=0 >>
#可以看到是空的,没有创建出文件.因为他不支持特殊符号的使用
有一个解决方法shell模块

2. shell 模块

  shell模块和command模块类似,但是却支持正则及特殊符号。非常好用,一度让我不再使用command  2333~

[root@k8s-master01 ansible]# ansible -i hosts web -m shell -a "echo 11 > /mnt/1.txt"
192.168.1.22 | CHANGED | rc=0 >>
192.168.1.21 | CHANGED | rc=0 >>
192.168.1.20 | CHANGED | rc=0 >>
[root@k8s-master01 ansible]# ansible -i hosts web -m shell -a "ls /mnt"
192.168.1.21 | CHANGED | rc=0 >>
1.txt
192.168.1.22 | CHANGED | rc=0 >>
1.txt
192.168.1.20 | CHANGED | rc=0 >>
1.txt
#可以看到,很好用哦~

3.  copy模块

     一听名字就知道,肯定是拷贝文件用的啦。 

     没啥说的,就是从ansible主机上把文件发送到被控端主机上

#创建文件
touch test
#执行命令
ansible -i hosts web -m copy -a "src=test dest=/mnt"
src=    #本地文件路径, 路径是基于你执行ansible的路径来的
dest=   #对方主机路径
#如果你切换了目录,命令就很长喽(绝对路径)
#ansible -i /etc/ansible/hosts web -m copy -a "src=/etc/ansible/test dest=/mnt"
ansible -i hosts web -m shell -a "ls /mnt"
192.168.1.21 | CHANGED | rc=0 >>
1.txt
192.168.1.20 | CHANGED | rc=0 >>
1.txt
192.168.1.22 | CHANGED | rc=0 >>
1.txt
                    关于 ansible的基本使用 官方的话不会说,基本都是自己理解的。有误请指出 谢谢 O(∩_∩)O ansible工具,原理就是通过ssh协议远程连接到对方的主机上,将本地的脚本(模块) 拷贝过去并执行你写好的命令的一个工具考虑到服务器上yum源大部分不能使用,这里rpm安装链接:https://pan.baidu.com/s/1YfEiWwB-NOXnCG0aXHYEHg提取码:kp9l复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员...
				
通用Oracle客户端 这是从全面的oracle客户端构建的,您需要将64位客户端的zip文件提供到files目录。 即时客户端具有很多角色,但这将在所有基本要素都到位的情况下进行全面安装。 这要求您首先从oracle获得oracle客户端下载并将其放置在该角色的files文件夹中。 一旦放置在那里,您就可以下载所有内容。 您还需要遵循有关变量的说明,因为默认情况下,这会在没有数据库的情况下安装客户端。 尽管会有明显的新版本发布,但可以在找到下载页面。 您正在寻找页面底部附近的linuxamd64客户端。 Oracle数据库 首先,是否存在将为此服务器自动配置的主数据库。 此主数据库的条目是数据库列表中的第一个条目。 oracle_client_has_primary_db: True 默认未设置任何数据库 如果要安装数据库,则必须进行设置。 这是条目外观的一个
对管理主机的要求 目前,只要机器上安装了 Python 2.6 或 Python 2.7 (windows系统不可以做控制主机),都可以运行Ansible.主机的系统可以是 Red Hat, Debian, CentOS, OS X, BSD的各种版本,等等. 对节点主机的要求 通常我们使用 ssh 与托管节点通信,默认使用 sftp.如果 sftp 不可用,可在 a... Ansible> = 2.9(它可能适用于以前的版本,但我们不能保证) Mac部署程序主机上的gnu-tar( brew install gnu-tar ) 使用基本身份验证功能时需要passlib( pip install passlib[bcrypt] ) 可以覆盖的所有变量都存储在并在下表中列出。 node_exporter_version 1.0.1 节点导出程序软件包版本。 也接受“最新”作为参数。 node_exporter_binary_local_dir 允许使用本地软件包,而不是在github上分发的软件包。 作为参数,它使用一个目录,在该目录node_exporter二进制文件存储在运行node_exporter主机上。 这将覆盖node_exporter_version参数 node_exporter_web_listen_address “ 0.0.0.0:9100” 出口者将在其上侦听的地址 node_exporte RabbitMQ剧本,使您可以启动简单的服务器或将它们集群在一起。 当前仅支持EC2上的群集。 如果要将其集成到另一个存储库中,请确保Rabbitmq进入角色文件夹。 配置仅适用于RabbitMQ 3.7和更高版本,因为此角色已经使用了较新的配置格式,请参见这应该不是问题,因为无论如何该角色都会安装最新的RabbitMQ版本已经是3.7.4(2018年4月)。 另请注意,必须在启动新实例时将其运行才能将其挂接到集群中! 因此,在cluster.yml中安装了ansible和boto。 注意:这是的分支。 Ubuntu / Debian基本映像。 ansbile是一款简单的自动化运维工具 ansible是由主机清单(配置),playbook(配置),以及各模块插件组成;简单的说就是,用户(管理员)通过ansible的主机清单配置或Playbook配置(一组任务),调用ansible的各种模块及参数来对清单中的主机进行统一管理。 ansible的安装 # 首先要安装epel源 yum install epel-release -y yum install ansible -y 二、配置及获取帮助说明 1、配置与执行文件说明 ansible
一、Ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。   ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。an...
docker pull isometimescode/ansible-playbook:latest 从DockerHub获取特定版本的Ansible docker pull isometimescode/ansible-playbook:2.10.3 运行一个容器并检查ansible的安装版本 docker run -t --rm -v $( pwd ) /my-local-playbook:/playbook isometimescode/ansible-playbook --version 运行一个容器并用您的剧本内容装入一个卷以执行播放 docker run -it --rm -v $( pwd ) /my-local-playbook:/ 加载自己的配置文件,默认/etc/ansible/ansible.cfg 加载自己对应的模块文件,如command 通过ansible将模块命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/xxx.py文件 给文件+x执行 执行并返回结果 删除临时py文件,sleep 0退出 ansible 的执行状态 root@ubuntu20:~# grep -A 14 '\[colors\]' /
文章目录一、yum安装ansible二、相关文件介绍`2.1.配置文件`a、/etc/ansible/ansible.cfg解释b、/etc/ansible/hosts格式`2.2.可执行文件`三、配置基于root用户Key的验证四、ansible命令执行过程五、执行状态六、常用模块`指定远程主机用户,并sudo到root用户` 参考视频:https://edu.51cto.com/lesson/306549 一、yum安装ansible yum -y install epel-release
Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配置的任务,服务器上不用安装任何多余的软件,只需要开启ssh,所有工作都交给client端的ansible负责。 关于Ansible的一个好处是,将bash脚本转换为可执行任务是非常容易的。我们可以编写自己的配置程序,但是Ansible更加干净,因为它
/etc/ansible/ansible.cfg /etc/ansible/hosts ---主机清单文件 定义可以管理的主机信息 /etc/ansible/roles ---角色目录 ansiable帮助手册 ansible-doc -l 列出模块目录 ansible-dic -s fetch 指定详细显示1个模块的作用
`ansible-playbook` 是 Ansible 中用来执行 Playbook 的命令。Playbook 是一个 YAML 格式的文本文件,其中定义了一组任务,这些任务可以在多台远程主机上执行。使用 `ansible-playbook` 命令可以将 Playbook 中定义的任务自动化地在远程主机上执行。 `ansible-playbook` 命令的基本语法如下: ansible-playbook playbook.yml 其中 `playbook.yml` 是 Playbook 的文件名。执行该命令后,Ansible 会自动读取并执行 Playbook 中定义的任务。在执行过程中,Ansible 会将任务的执行结果输出到终端上,以便用户查看。
一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请看: Microsoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket 无效数据,你会怎么处理?: https://activity.csdn.net/creatActivity?id=10423?utm_source=csdn_ai_ada_redpacket 新人首创任务挑战赛: https://marketing.csdn.net/p/90a06697f3eae83aabea1e150f5be8a5?utm_source=csdn_ai_ada_redpacket 全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket