1. 程式人生 > >ansible原始碼安裝、普通使用者實現批量控制

ansible原始碼安裝、普通使用者實現批量控制

一、ansible簡介

 

ansible是一款自動化運維工具,基於Python開發,集合了眾多運維工具(puppetcheffuncfabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。 ansible不需要在遠端主機上安裝client/agents,因為它們是基於ssh來和遠
程主機通訊的。

  

二、ansible 特點

1 部署簡單,只需在主控端部署Ansible環境,被控端無需做任何操作;

2 預設使用SSH協議對裝置進行管理;

3有大量常規運維操作模組,可實現日常絕大部分操作;

4配置簡單、功能強大、擴充套件性強;

5輕量級,無需在客戶端安裝agent,更新時,只需在操作機上進行一次更新即可;

 

三、架構圖

 

環境:

2臺centos7

192.168.0.4主

192.168.0.5被控制

 

在192.168.0.4上

1、配置本地yumyuan

mkdir /etc/yum.repo/1

mv /etc/yum.repo/C*  1

vi  /etc/yum.repos.d/yum.repo 

[yum.repo]
name=yum.repo
baseurl=file:///mnt/cdrom
gpgcheck=0
enable=1

yum clear all

yum install gcc -y

yum install python-devel -y

yum install unzip -y

檢視python版本

python --version

2.7.*

下載包:

下載ansibel的tar包       https://releases.ansible.com/ansible/ansible-2.7.2.tar.gz 

下載關聯包     https://pypi.org/project/     加上下面包名

1、setuptools-40.6.2.zip

  unzip setuptools-40.6.2.zip

  cd setsetuptools-40

  python setup.py install

2、pip-18.1.tar.gz

   tar xvfz pip-18.1.tar.gz

  cd pip-18.1

  python setup.py install

3、pycrypto-2.6.1.tar.gz

4、PyYAML-3.11.tar.gz

5、MarkupSafe-0.9.3.tar.gz

6、Jinja2-2.7.3.tar.gz

7、ecdsa-0.11.tar.gz

8、 paramiko-1.15.1.tar.gz

9、simplejson-3.6.5.tar.gz

10、pip install six-1.11.0-py2.py3-none-any.whl

11    pip install ipaddress-1.0.22-py2.py3-none-any.whl 

12、pip install asn1crypto-0.24.0-py2.py3-none-any.whl

13、 pip install idna-2.7-py2.py3-none-any.whl  

14、pip install enum34-1.1.6-py2-none-any.whl 

15、tar xvfz cffi-1.11.5.tar.gz

16、tar xvfz  pycparser-2.19.tar.gz

17、pip install cffi-1.11.5-cp27-cp27mu-manylinux1_x86_64.whl 

18、pip install cryptography-2.4.2-cp27-cp27mu-manylinux1_x86_64.whl

19、tar xvfz ansible-2.7.2.tar.gz

 

注意::  所有的tar包如  第2個一樣    所以有的 *.whl 的進行 pip install 包名    進行安裝

檢查結果:  ansible --version

               可以看到  ansible的版本2.7

安裝完畢。

 

 

安裝參謀連線 :https://www.jianshu.com/p/8ed33efa0139

 

實驗搭建:

兩臺centos7

192.168.0.4   主(安裝ansible)

192.168.0.5   被監控

 

1、在所有機器上進行操作

  useradd ansible

  passwd ansible  (密碼123456)  

sed -i '$a\ansible ALL=(ALL) NOPASSWD: ALL' /etc/sudoers

2、在192.168.0.4上進行操作:

  修改ansible管理機/etc/ansible/ansible.cfg檔案 

  deprecation_warnings = Flase 

  command_warnings = False

      

   將客戶端ip加入hosts檔案 可進行分組

   vim  /etc/ansible/hosts   

       [組名]    自定義分組

        IP

3、su - ansible 

       ssh-keygen -t rsa

  ssh-copy-id -i   192.168.0.4

  ssh-copy-id -i   192.168.0.5

部署完畢

 

命令操作:

1、基礎命令

  ansible   ip或組    -m   command    -a   '命令'

 2、shell 模組

     ansible   ip    -m  shell  -a    "指令碼的絕對路徑"

     ***   ansible   ip    -m  shell  -a  "支援管道命令"

3、copy 模組 

  ansible  ip    -m   copy   -a  "src=來源目錄/檔案  dest=目標路徑  owner=屬主 group=屬組   mode=0755 許可權"

       預設許可權644   如果目標路徑不存在  自動建立

 

4、cron 模組

    ansible ip  -m cron -a "name=任務名字隨意 job='任務'      時間例如  weekday=5"

                       *****   "name=名字   state=absent"   取消任務

  

  minute分鐘            可以寫成   mintue='1-10'            '1,5,6'

  hour 小時               每隔2小時   hour=*/2       

  day   日期      

  month   月份

5、service 模組  yum  模組

   ansible   ip    -m  yum  -a "name=包名(必須精準包名)"    安裝包

    ansible  ip  -m  service -a  "name=服務  state=started/stopped  enabled=yes/no" 

 

 

********   所有命令後面加上    --sudo     執行的root許可權

          例如:   ansible  all  -m shell -a "/home/ansible/ip.sh"  --sudo