Ansible 初体验

本文介绍了Ansible的基本概念、安装方法、主机管理要求,以及如何避免每次连接主机时输入密码。深入探讨了YAML语言和Ansible playbook的核心元素,包括任务、变量、模板和标签的使用。此外,文章还提供了多个进阶示例,如利用handlers和notify、tags、变量、模板以及roles。通过这些内容,读者可以快速上手Ansible,实现自动化运维。
摘要由CSDN通过智能技术生成

ansible是什么?

 

    一种自动化运维工具,适用于中小型企业,管理机器数量在一定范围之内,当你使用过一段时间之后就会发现,其实运行起来的速度还是有限。可以实现在多台主机上同时操作,修改用户组,创建新用户,安装程序,差异配置等一系列操作。

   Ansible默认通过SSH协议管理机器;安装ansible之后,不需要启动或运行一个后台进程,只需要一台电脑即可通过网络管理一组远程主机,在远程管理的主机上也不需要安装任何软件,因此Ansible的版本升级不会带来太多问题。python开发,基于远程ssh管理,性能可能不比有代理程序的好,但有代理程序的会涉及到每台主机都要安装代理程序较为麻烦。

 


如何安装?

  ①yum安装较为简便,但要配置epel源( yum install ansible -y )

  ②Github下载安装 https://github.com/ansible/ansible

$ git clone git://github.com/ansible/ansible.git --recursive   

$ cd ./ansible

$ source ./hacking/env-setup

$ . ./hacking/env-setup.fish

$ source ./hacking/env-setup -q

$ sudo easy_install pip

$ sudo pip install paramiko PyYAML Jinja2 httplib2 six

$ git pull --rebase

$ git submodule update --init --recursive

$ echo "127.0.0.1" > ~/ansible_hosts

$ export ANSIBLE_HOSTS=~/ansible_hosts

$ ansible all -m ping -k


对管理主机的要求?

   只要机器上安装了python2.6或2.7以上的版本都可以安装ansible(windows系统不可做控制主机)

 

   到此ansible基本已经安装成功了


在ansible配置文件列表中,有以下几个列表需要特别注意:

1.  /etc/ansible/ansible.cfg                               # 主配置文件,一般没有太多修改

2.  /etc/ansible/hosts                                       # 较重要,主机清单,所有被远程的主机都必须在这个文件中

3.  /etc/ansible/roles/                                       # 角色存放的目录

ansible 各类程序:

1. /usr/bin/ansible                                            # 主程序,临时命令执行工具

2. /usr/bin/ansible-doc                                     # 查看配置文档,模块功能查看工具

3. /usr/bin/ansible-galaxy                                # 下载/上传优秀代码或roles角色模块的官网平台

4. /usr/bin/ansible-palybook                            # 定制自动化任务,编排剧本任务

5. /usr/bin/ansible-pull                                     # 远程执行命令的工具

6. /usr/bin/ansible-vaule                                  # 文件加密工具

7. /usr/bin/ansible-console                              # 交互式执行工具

 

配置文件解释:vim /etc/ansible/ansible.cfg

[defaults]

# some basic default values...

#   inventory      = /etc/ansible/hosts                                   #主列表配置文件
#   library        = /usr/share/my_modules/                           # 库文件存放目
#   remote_tmp     = ~/.ansible/tmp                                     # 临时py命令文件存放在远程主机目录 

 

 

#local_tmp      = ~/.ansible/tmp                                        # 本机的临时命令执行目录
#forks          = 5                                                                # 默认并发数
#sudo_user      = root                                                       # 默认sudo用户
#ask_sudo_pass = True                                                  # 每次执行ansible命令时是否询问ssh密码
#ask_pass      = True
#transport      = smart
#remote_port    = 22
#module_lang    = C
#module_set_locale = False

#log_path = /var/log/ansible                                           # 默认是不记录日志,取消日志,开启记录

#host_key_checking=False                                            # 检查对应服务器的host_key建议取消注释,将其功能开启

 

了解以上内容之后,现在可以开始第一个ansible程序了

前提是在/etc/ansible/hosts 文件中记录要控制的主机ip地址,才能用ansible远程控制,而不在主机清单中的主机是无法用ansible远程控制的。

[root@localhost ~]# ansible 192.168.1.118 -m ping -k

注:1. IP地址在hosts文件中存在

       2. -m ping 指使用ping模块(这里的ping不是icmp ping,而是ping模块,但功能相近,都是用来探测主机是否存活)
       3. -k 表示连接时提示输入密码,若本机是root用户,则连接过去的也是以root用户登陆

 

每次连接主机是都要输入主机密码嫌麻烦?

基于公钥认证验证登陆

实现key认证的方法:

[root@localhost ~]# ssh-keygen                                     # enter三连击

[root@localhost ~]#cd .ssh

[r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值