20201027 ansible自动化运维平台

ansible自动化运维平台具有很多优点,最大的优点就是不需要在客户端安装任何客户端,

1 首先直接远程到我们的控制端:ssh root@192.168.88.11

2 创建我们需要操作的用户 useradd greg -p flectrag

3 安装也比较简单,yum -y install ansible

防止出现操作用户不匹配的情况,退出切换到我们的操作用户greg

4  创建要求目录并且进入目录  mkdir -p /home/greg/ansible && cd /home/greg/ansible

5 创建被控的主机清单,vim inventory 如果没有[组名称]则所有地址主机默认到未分组中,我们模拟更多情况,所以配置文件如下

分组好理解,需要说下组之间的叠加,

[上级组名称:children]

[下级组名称]

全局变量,工作中我们应该考虑更为安全的方式,学习中这样可以方便我们不去频繁输入:[all:vars]

ansible_user=root

ansible_user=redhat

6 下来我们需要说明一下ansible的一些配置情况

 6.1 ansible的配置文件有三个位置,优先级最高就是当前文件夹下的ansible配置文件,其次是默认指定的,所以如果想要指定他的配置文件,不用自己在写一遍,我们可以将配置好的默认指定的配置文件复制到我们要生效的目录下

cp /etc/ansible/ansible.cfg /home/greg/ansible/ansible.cfg

6.2 然后我们需要指定我们刚才创建的主机清单,编辑配置文件,可以看到默认的配置文件位置是inventory=/etc/ansible/hosts,将我们刚创建的位置粘贴进去即可,这个时候我们需要通过两条命令去检查一下我们配置的是否正确,第一个是生效的配置文件是不是我们想要的那个

第二个是维护的inventory内部是否正确,当然这个后面的参数很多,只是图表更清晰一些 --list还可以看到全局变量

6.3 修改角色的位置   创建:mkdir /home/greg/ansible/roles  默认位置为roles_path=/etc/ansible/roles 修改成我们指定的即可

6.4 还有两个参数可以方便我们去操作,根据自己情况去设定

host_key_checking=False   # 这个的作用就是不用在每次去确认是否要连接到一个陌生的服务器

remote_user=root 这个就是管理其他节点机器的时候用什么用户,这个默认是root 可以根据自己需要去修改

7 利用ansible来管理节点机器

创建一个名为 /home/greg/ansible/adhoc.sh 的 shell 脚本,该脚本将使用 Ansible 临时命令在各个受管节点上安装 yum 存储库

说明:实际上我们可能很多人在操作的时候不喜欢去分辨使用的模块,直接使用shell 模块。但是理论上,我们还是需要去熟悉指定的模块,使用ansible-doc -l 去列出所有模块,也可以去使用关键字去过滤,帮助我们去使用,可以看到,我们需要的

如果需要找模块下的具体参数:  ansible-doc yum_repository   如果对具体参数没有概念,那么建议直接去最后面看example

这个我们不必太在意具体的形式,我们知道每个参数的意思即可,给出的是多行模式 name:epel  如果是单行模式需要写成 name="epel"    ansible all (所有受控节点) -m  (模块) yum_repository -a (参数) ‘名称=“设定值”’

我们在前面没有修改host_key_checking 导致的结果就是

 取消了上面的检查之后,开始提示

提示权限不足,然后自己远程发现,是因为没有安装key导致的需要输入密码,所以中断,这个时候我自己安装一下

在控制端执行ssh-keygen不加密文,直接一路确定即可,然后使用ssh-copy-id 172.25.250.13 中间输入远程主机密码确认后即可,依次所有受控节点增加完毕。再次执行新增没有任何问题

============== 使用playbook去批量安装软件

playbook 就是给定一些参数,然后ansible会按照里面的每一步设定去逐个批量处理,他和python一样有严格的格式要求,里面的值支持中文,但是前面的空格等格式不能混乱,每个层级有每个层级的空格,并且开头第一行,必须是三个短横线---,第二行必须是【-空格name:空格值】key的前后必须有空格,这里注意看颜色的变化,不是key的颜色那格式之类的肯定有问题.另外就是后缀名是.yml,比如playbook.yml

其他格式只能自己记住,

一级目录:name hosts  tasks   (名称,要应用的组,要做的任务)

二级目录  tasks 下的name,yum  (名称,要使用的模块,如果模块不记得或者不会用,可以使用shell模块替代,比如:shell:"yum install php"即可,虽然这样熟悉,但是这样不符合规定,看个人选择吧ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在 Ubuntu 上搭建 Ansible 自动化运维平台的基本步骤: 1. 安装 Ansible ``` sudo apt update sudo apt install ansible ``` 2. 配置 SSH 连接 Ansible 使用 SSH 连接到远程服务器执行任务,因此需要确保 SSH 连接正常。如果你已经有 SSH 密钥对,可以将公钥分发到远程服务器: ``` ssh-copy-id user@remote_host ``` 如果你没有 SSH 密钥对,可以使用以下命令创建: ``` ssh-keygen ``` 3. 配置 Ansible 主机清单 Ansible 主机清单是一个文本文件,用于列出要管理的远程服务器。可以创建一个名为 `hosts` 的文件,格式如下: ``` [web] web1 ansible_host=192.168.1.10 web2 ansible_host=192.168.1.11 [db] db1 ansible_host=192.168.1.12 db2 ansible_host=192.168.1.13 ``` 在这个示例中,我们定义了两个组(`web` 和 `db`),每个组包含两个远程服务器。`ansible_host` 属性指定了每个服务器的 IP 地址或主机名。 4. 测试 Ansible 连接 可以使用以下命令测试 Ansible 是否可以连接到远程服务器: ``` ansible all -m ping -i hosts ``` 这个命令将向清单文件中的所有服务器发送 `ping` 命令,以测试是否可以连接。如果一切正常,应该会看到类似以下的输出: ``` web1 | SUCCESS => { "changed": false, "ping": "pong" } web2 | SUCCESS => { "changed": false, "ping": "pong" } db1 | SUCCESS => { "changed": false, "ping": "pong" } db2 | SUCCESS => { "changed": false, "ping": "pong" } ``` 5. 创建 Ansible 剧本 剧本是 Ansible 中的核心概念,用于描述一系列任务和操作,以便自动化执行。可以创建一个名为 `webserver.yml` 的文件,内容如下: ``` --- - name: Install web server hosts: web become: true tasks: - name: Update apt cache apt: update_cache: yes - name: Install Apache web server apt: name: apache2 state: present ``` 在这个示例中,我们定义了一个名为 `Install web server` 的剧本,它将在 `web` 组的所有服务器上安装 Apache Web 服务器。`become` 属性指定了使用管理员权限执行任务,`tasks` 属性指定了要执行的任务列表。 6. 运行 Ansible 剧本 可以使用以下命令运行 Ansible 剧本: ``` ansible-playbook -i hosts webserver.yml ``` 这个命令将在清单文件中的所有服务器上运行 `webserver.yml` 剧本,以安装 Apache Web 服务器。 以上就是在 Ubuntu 上搭建 Ansible 自动化运维平台的基本步骤。请注意,具体操作方法可能因为不同的环境而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值