ansible安装和基本使用方法

来源:互联网 发布:python机器人编程书籍 编辑:程序博客网 时间:2024/06/08 10:09

安装

1、 python版本需要2.6以上,python -V2、 添加yum 源  a、 vim /etc/yum.repos.d/ansible  b、 添加如下内容:    [epel]    name = all source for ansible    baseurl = https://mirrors.aliyun.com/epel/7/x86_64/    enabled = 1    gpgcheck = 0    [ansible]    name = all source for ansible    baseurl = http://mirrors.aliyun.com/centos/7.3.1611/os/x86_64/    enabled = 1    gpgcheck = 03、 yum clean all4、 安装ansible:yum install ansible -y

配置秘钥

1、在master和所有slave上,使用yourname用户名执行:复制代码 代码示例:ssh-keygen -t dsa -P '' -f /home/yourname/.ssh/id_dsa 2、在master的/home/yourname/.ssh目录下,执行 :复制代码 代码示例:cat id_dsa.pub > authorized_keys 3、将master上的authorized_keys拷贝到所有slave的相同目录下。命令:复制代码 代码示例:scp   /home/yourname/.ssh/authorized_keys yourname@192.168.38.58:/home/yourname/.ssh/  scp   /home/yourname/.ssh/authorized_keys yourname@192.168.38.60:/home/yourname/.ssh/   

配置

1、配置文件:ansible应用程序的主配置文件:/etc/ansible/ansible.cfg            host Inventory定义管控主机:/etc/ansible/hosts2、添加ansible客户机组,命令:vi /etc/ansible/hosts,在最后面添加如下内容:   [group1]   192.168.1.234   192.168.1.2353、修改日志输出目录vi /etc/ansible/ansible.cfg       log_path = /var/log/ansible.log

使用命令

[root@master ~]#ansible group1 -m shell -a "yum install iotop"   [root@master ~]# ansible group1 -m ping 192.168.1.235 | SUCCESS => {    "changed": false,     "ping": "pong"}192.168.1.234 | SUCCESS => {    "changed": false,     "ping": "pong"}[root@master ~]# echo "aa" >ansilbetest.txt[root@master ~]# ansible group1 -m copy -a "src=/root/ansilbetest.txt  dest=/tmp/"192.168.1.235 | SUCCESS => {    "changed": true,     "checksum": "312382290f4f71e7fb7f00449fb529fce3b8ec95",     "dest": "/tmp/ansilbetest.txt",     "gid": 0,     "group": "root",     "md5sum": "d404401c8c6495b206fc35c95e55a6d5",     "mode": "0644",     "owner": "root",     "size": 3,     "src": "/root/.ansible/tmp/ansible-tmp-1506049655.33-221877789013378/source",     "state": "file",     "uid": 0}192.168.1.234 | SUCCESS => {    "changed": true,     "checksum": "312382290f4f71e7fb7f00449fb529fce3b8ec95",     "dest": "/tmp/ansilbetest.txt",     "gid": 0,     "group": "root",     "md5sum": "d404401c8c6495b206fc35c95e55a6d5",     "mode": "0644",     "owner": "root",     "size": 3,     "src": "/root/.ansible/tmp/ansible-tmp-1506049655.13-30269377020397/source",     "state": "file",     "uid": 0}  

常用模块

cron模块:    在指定节点上定义一个计划任务group模块:    在所有节点上创建一个组user模块:    在指定节点上创建一个用户名yum模块:    在指定节点上安装软件service模块:    启动指定节点上的服务script模块:     在指定节点上执行脚本ping模块:    查指定节点机器是否还能连通get_url模块:    将url文件下载到指定节点的/tmp目录下    

剧本(Playbooks)

每个剧本都是一个YAML格式的文件例如[root@k8smaster ansibletest]# vi test.yml - hosts: all  remote_user: root  vars:      //定义变量    http_port: 80    newport: 200  tasks:  - name: test connection     ping:  - name: install iotop    yum: name=iotop state=latest         //state: present/latest用于安装包,absent用于remove安装包  - name: iotop uninstall    yum: name=iotop state=absent  - name: "修改配置文件"    lineinfile:      dest: "/tmp/ansilbetest.txt"      regexp: "{{http_port}}"      line: "{{newport}}"      #backup: yes      backrefs: yes  - name: "获取主机名"    shell: hostname    register: test_result  - name: "修改配置文件1"    lineinfile:      dest: "/tmp/ansilbetest.txt"      regexp: "hostname"      line: "{{test_result.stdout_lines[0]}}"      #backup: yes      backrefs: no...结果如下[root@k8smaster ansibletest]# ansible-playbook test.yml                       PLAY [all] *******************************************************************TASK [Gathering Facts] *******************************************************ok: [192.168.1.234]                                                           ok: [192.168.1.235]                                                           TASK [ping] ******************************************************************ok: [192.168.1.235]                                                           ok: [192.168.1.234]                                                           TASK [install iotop] *********************************************************changed: [192.168.1.234]                                                      changed: [192.168.1.235]                                                      TASK [iotop uninstall] *******************************************************changed: [192.168.1.234]                                                      changed: [192.168.1.235]                                                      TASK [修改配置文件] **********************************************************ok: [192.168.1.235]                                                           ok: [192.168.1.234]                                                           TASK [获取主机名] ************************************************************changed: [192.168.1.234]                                                      changed: [192.168.1.235]                                                      TASK [修改配置文件1] *********************************************************changed: [192.168.1.234]                                                      changed: [192.168.1.235]                                                      PLAY RECAP *******************************************************************192.168.1.234              : ok=7    changed=4    unreachable=0    failed=0   192.168.1.235              : ok=7    changed=4    unreachable=0    failed=0   
原创粉丝点击