ansible学习

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介:

一、ansible安装

#只需要管理端安装

yum install epel-release

yum install ansible


二、配置

vim /etc//ansible/hosts    #添加远程被管理端主机

192.168.10.148

k8s-master

k8s-node-2



三、 生成公钥放到被管理端

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.148

ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-master

ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node-2


管理端测试: ansible all -m ping

ansible all -m ping -u alex    #以alex用户执行

ansible all -m ping -u alex --sudo --sudo-user batman    #sudo方式运行


四、命令

#开启两个进程并行执行,关闭atlanta组的所有主机

ansible atlanta -a "/sbin/reboot" -f 2


#拷贝文件到atlanta组的主机

ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"


#修改为文件权限

ansible atlanta -m file -a "/tmp/hosts mode=777"


#创建目录

ansible atlanta -m file -a "dest=/tmp/c mode=755 owner=nginx group=nginx state=directory"


#删除目录

ansible atlanta -m file -a "dest=/tmp/c state=absent"


#确认软件包是否安装,但不去升级

ansible atlanta -m yum -a "name=nginx state=present"


#确认一个软件包没有安装

ansible atlanta -m yum -a "name=nginx state=absent"


#使用 ‘user’ 模块可以方便的创建账户,删除账户,或是管理现有的账户:

ansible all -m user -a "name=foo password=<crypted password here>"

ansible all -m user -a "name=foo state=absent"


#启动服务

ansible atlanta -m service -a "name=docker state=started"


#重启服务

ansible atlanta -m service -a "name=docker state=restarted"


#停止服务

ansible atlanta -m service -a "name=docker state=stopped"


#需要长时间运行的命令可以放到后台去,在命令开始运行后我们也可以检查运行的状态.如果运行命令后,不想获取返回的信息, 可执行如下命令:

ansible all -B 3600 -P 0 -a "/usr/bin/long_running_operation --do-stuff"


#如果你确定要在命令运行后检查运行的状态,可以使用 async_status 模块.前面执行后台命令后会返回一个 job id, 将这个 id 传给 async_status 模块:

ansible web1.example.com -m async_status -a "jid=488359678239.2844"


#获取状态的命令如下:

ansible all -B 1800 -P 60 -a "/usr/bin/long_running_operation --do-stuff"


其中 -B 1800 表示最多运行30分钟, -P 60 表示每隔60秒获取一次状态信息.


五、http安装配置文件修改例子

vim /etc/ansible/hosts #添加主机组

[testhost]

192.168.10.148

192.168.10.224


编写yaml文件

vim http.yml    #修改httpd.conf文件时,notify会通知客户端重启httpd

- hosts: testhost

  vars:

    src_http_dir: "/etc/httpd"

    dest_http_dir: "/tmp"

  remote_user: root

  tasks:

  - name: instal httpd service

    yum: name=httpd state=present

  - name: copy httpd conf

    copy: src="`src_http_dir`/conf/httpd.conf" dest=/etc/httpd/conf/httpd.conf

    notify:

      - restart httpd service

  - name: start httpd service

    service: name=httpd state=started enabled=true

  handlers:

    - name: restart httpd service

      service: name=httpd state=restarted



变量使用

vim test1.yml

- hosts: testhost

  vars:

    src_http_dir: "/etc/httpd"

    dest_http_dir: "/tmp"

  remote_user: root

  tasks:

  - name: copy httpd conf

    copy: src="`src_http_dir`/conf/httpd.conf" dest="`dest_http_dir`/http.conf.ansible"



模板使用

vim httpd.conf

#修改以下内容

Listen `ansible_all_ipv4_addresses`.`0`:`http_port`

ServerName `ansible_nodename`


vim test2.yml

- hosts: testhost

  vars:

    http_port: 8010

    http_dir: /etc/httpd/conf

  remote_user: root

  tasks:

  - name: copy httpd conf

    template: src=/etc/ansible/httpd.conf dest="`http_dir`/httpd.conf"

    notify:

     - restart httpd service

  handlers:

   - name: restart httpd service

     service: name=httpd state=restarted



     本文转自小白的希望 51CTO博客,原文链接:,http://blog.51cto.com/haoyonghui/1970029如需转载请自行联系原作者





相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11月前
|
运维 关系型数据库 Shell
小白带你学习linux自动化运维ansible
小白带你学习linux自动化运维ansible
275 0
小白带你学习linux自动化运维ansible
|
Shell 网络安全 开发工具
|
运维 网络安全 数据安全/隐私保护
ansible学习之旅(入门篇)
ansible学习之旅(入门篇)
469 0
|
应用服务中间件 网络安全 开发工具
学习ansible常用模块这篇就够了(剧本)(二)
学习ansible常用模块这篇就够了(剧本)
142 0
|
运维 应用服务中间件 Shell
学习ansible常用模块这篇就够了(剧本)(一)
学习ansible常用模块这篇就够了(剧本)
374 0
|
运维 Shell 网络安全
|
数据安全/隐私保护 Memcache
ansible学习之旅(其它特性)
ansible学习之旅(其它特性)
70 0
|
Kubernetes 负载均衡 Docker
ansible学习之旅(ansible依托kubeadm安装一个简单的k8s集群)
ansible学习之旅(ansible依托kubeadm安装一个简单的k8s集群)
159 0
|
存储 JSON 缓存
ansible学习之旅(facts变量)
ansible学习之旅(facts变量)
176 0
ansible学习之旅(初识变量)
ansible学习之旅(初识变量)
82 0